Re: DST and time zones - Mailing list pgsql-novice

From Tom Lane
Subject Re: DST and time zones
Date
Msg-id 7361.1095537626@sss.pgh.pa.us
Whole thread Raw
In response to DST and time zones  (A Gilmore <agilmore@shaw.ca>)
Responses Re: DST and time zones
List pgsql-novice
A Gilmore <agilmore@shaw.ca> writes:
> I need a method of returning a date in a given timezone and accomidating
> DST.  For example, my server is set to UTC, Id like to return the epoch
> for Vancouver Canada.

Huh?  Epoch is UTC all over the world, at least for sane operating
systems.  But disregarding your specific example, the general problem is
valid.  I'm afraid there's not a real good solution at the moment.
You should ideally be able to say

    select now() at time zone 'PST8PDT';

or one of the other spellings of that DST-aware time zone name, such as
'America/Vancouver'.  The raw materials to support this are in place as
of 8.0, but we didn't get all the work done --- maybe 8.1 will be able
to do it.

In the meantime, the only solution I can suggest is pretty klugy:
temporarily set the TIMEZONE variable.  For example, I'm in EST5EDT,
so:

regression=# select now();
              now
-------------------------------
 2004-09-18 15:57:26.944637-04
(1 row)

regression=# begin;
BEGIN
regression=# set local timezone = 'PST8PDT';
SET
regression=# select extract(hour from cast(now() as timestamp without time zone));
 date_part
-----------
        12
(1 row)

regression=# commit;
COMMIT

            regards, tom lane

pgsql-novice by date:

Previous
From: Tom Lane
Date:
Subject: Re: Importing data into postgreSQL from FileMaker?
Next
From: "M. Bastin"
Date:
Subject: Re: Importing data into postgreSQL from FileMaker?