2016-01-20 14:24 GMT+01:00 Steve Rogerson <steve...@yewtc.demon.co.uk>:
> On 20/01/16 12:53, Albe Laurenz wrote: > > Steve Rogerson wrote: > >> Hi, this is wrong: > >> > >> # select to_char('2016-01-20 00:00'::timestamp at time zone > 'Europe/Lisbon', > >> 'TZ'); > >> to_char > >> --------- > >> GMT > >> (1 row) > >> > >> > >> It should be WET, "Western European Time". Is there something I'm doing > wrong? > > > > That query will always give you your local timezone. > > > > Here in Austria I get: > > us > > test=> select to_char('2016-01-20 00:00'::timestamp at time zone > 'Asia/Yerevan', 'TZ'); > > ┌─────────┐ > > │ to_char │ > > ├─────────┤ > > │ CET │ > > └─────────┘ > > (1 row) > > > > Yours, > > Laurenz Albe > > > That seems odd, but never mind. I'll ask the direct qn then given the > above is > it possible to determine the short TZ, say WET in my example. > > Thinking about it, probably not as I suspect that pg only stores the > offset in > seconds(?) from UTC, so once it has parsed "2016-.... 'Europe/Lisbon'" it > has > lost track of the origin TZ and in that case what else could "to_char( ..., > 'TZ') mean then other than the current client TZ. > Postgres doesn't store original TZ. It does recalculation to local TZ. If you need original TZ, you have to store it separetely. Regards Pavel > > Steve > > > -- > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general >