Re: Postgres and timezones - Mailing list pgsql-general

From Pavel Stehule
Subject Re: Postgres and timezones
Date
Msg-id CAFj8pRCx997zaOdC8e244hW1bQmL5WSk+G4Ryz7o_MXsdLVhFw@mail.gmail.com
Whole thread Raw
In response to Re: Postgres and timezones  (Steve Rogerson <steve.pg@yewtc.demon.co.uk>)
Responses Re: Postgres and timezones
List pgsql-general


2016-01-20 14:24 GMT+01:00 Steve Rogerson <steve.pg@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

pgsql-general by date:

Previous
From: Steve Rogerson
Date:
Subject: Re: Postgres and timezones
Next
From: Eelke Klein
Date:
Subject: Re: Postgres and timezones