On Fri, Aug 3, 2012 at 5:18 PM, Laszlo Nagy <gand...@shopzeus.com> wrote:

>
>
>  Isn't:
>
>  select now() at time zone 'Australia/ATC'
>
>   supposed to be:
>
>  select now() at time zone 'Australia/ACT'
>
> I see now. The abbreviation is usually a time zone name. But to be
> correct, the time zone name should be used (and not the abbreviation).
>
>
>  And looking at the pg_timezone_names table for EST, there's only one
> entry for EST:
>
>   SELECT * from pg_timezone_names where name = 'EST';
>  name | abbrev | utc_offset | is_dst
> ------+--------+------------+--------
>  EST  | EST    | -05:00:00  | f
>
>
> Okay, but that is the "name", and not the "abbrev" field. So time zone
> abbreviations are not unique? Then probably it is my fault - I thought that
> they will be unique. It is still an interesting question, how others
> interpret these (non-unique) abbreviations? But I guess that is not related
> to PostgreSQL so I'm being offtopic here.
>
>
> One last question. Am I right in that PostgreSQL does not handle leap
> seconds?
>
> template1=> set time zone 'UTC';
> template1=> select '2008-12-31 23:59:60'::timestamp;
>       timestamp
> ---------------------
>  2009-01-01 00:00:00
> (1 row)
>
> And probably intervals are affected too:
>
> template1=> set time zone 'UTC';
> template1=> select '2008-12-31 00:00:00'::timestamp + '48 hours'::interval;
>       timestamp
> ---------------------
>  2009-01-02 00:00:00
> (1 row)
>
> Should be '2009-01-01 23:59:59' instead.
>
> Thanks,
>
>    Laszlo
>
>
>
Well, per the docs at
http://www.postgresql.org/docs/9.1/static/functions-datetime.html,  in
parens under timezone:

"Technically, PostgreSQL uses UT1because leap seconds are not handled."

Although there is a footnote on that page that states that:

"60 if leap seconds are implemented by the operating system".

-- 
JC de Villa

Reply via email to