Re: The contents of the pg_timezone_names view bring some surprises - Mailing list pgsql-general

From Peter J. Holzer
Subject Re: The contents of the pg_timezone_names view bring some surprises
Date
Msg-id 20210522100923.GB25129@hjp.at
Whole thread Raw
In response to Re: The contents of the pg_timezone_names view bring some surprises  (Adrian Klaver <adrian.klaver@aklaver.com>)
Responses Re: The contents of the pg_timezone_names view bring some surprises  ("Peter J. Holzer" <hjp-pgsql@hjp.at>)
Re: The contents of the pg_timezone_names view bring some surprises  (Adrian Klaver <adrian.klaver@aklaver.com>)
List pgsql-general
On 2021-05-19 06:57:13 -0700, Adrian Klaver wrote:
> On 5/18/21 11:31 PM, Bryn Llewellyn wrote:
> > This seems to be at odds with what section “8.5.3. Time Zones” at
> >
> > https://www.postgresql.org/docs/current/datatype-datetime.html#DATATYPE-TIMEZONES
<https://www.postgresql.org/docs/current/datatype-datetime.html#DATATYPE-TIMEZONES>
> >
> > says:
> >
> > «
> > A time zone abbreviation, for example PST. Such a specification merely
> > defines a particular offset from UTC, in contrast to full time zone
> > names which can imply a set of daylight savings transition rules as
> > well. The recognized abbreviations are listed in
> > the pg_timezone_abbrevs view (see Section 51.91). You cannot set the
> > configuration parameters TimeZone or log_timezone to a time zone
> > abbreviation, but you can use abbreviations in date/time input values
> > and with the AT TIME ZONE operator.
> > »
> >
> > This claims (as I read it) that a time zone abbreviation uniquely
> > determines an offset from UTC.
>
> It says no such thing

Maybe that's the inherent ambiguity of the English language, but to me
"Such a specification defines a particular offset from UTC" does imply a
one-to-one mapping from abbreviation to offset.

> and would be lying if it did.

As far as pg_timezone_abbrevs is concerned, it is correct. abbrev is
unique in that view:

hjp=> select abbrev, count(*) from pg_timezone_abbrevs group by 1 having count(*) > 1;
╔════════╤═══════╗
║ abbrev │ count ║
╟────────┼───────╢
╚════════╧═══════╝
(0 rows)

(at least in PostgreSQL 11.12)

It is not true in "the real world", where different time zones may use
the same abbreviation. But that isn't what the paragraph is about.


> What it is saying that, for example,  the timezone America/Los_Angeles has
> two timezone abbreviations PDT(what I'm currently in) and PST. If you use an
> abbreviation you don't get the DST transition rules that a full timezone
> name has.

Yes, does also say that.

        hp

--
   _  | Peter J. Holzer    | Story must make more sense than reality.
|_|_) |                    |
| |   | hjp@hjp.at         |    -- Charles Stross, "Creative writing
__/   | http://www.hjp.at/ |       challenge!"

Attachment

pgsql-general by date:

Previous
From: "Peter J. Holzer"
Date:
Subject: Re: The contents of the pg_timezone_names view bring some surprises
Next
From: "Peter J. Holzer"
Date:
Subject: Re: Fwd: Proposed Chinese Translation of Community Code of Conduct