From: | Bruce Momjian <bruce(at)momjian(dot)us> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Yura Sokolov <funny(dot)falcon(at)gmail(dot)com>, Susanne Ebrecht <susanne(at)2ndQuadrant(dot)com>, pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: Setting timezone: is it bug or intended? |
Date: | 2011-09-07 02:08:16 |
Message-ID: | 201109070208.p8728GK10336@momjian.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Tom Lane wrote:
> Bruce Momjian <bruce(at)momjian(dot)us> writes:
> > Tom Lane wrote:
> >> It already is documented. See
> >> http://developer.postgresql.org/pgdocs/postgres/datatype-datetime.html#DATATYPE-TIMEZONES
> >> specifically the point that POSIX zone names have the opposite sign
> >> convention from ISO-8601.
> >>
> >> The great thing about standards is there are so many to choose from ;-)
>
> > What isn't documented is why the sign changes for +0300 but not +03:
>
> +03:00 is a legal POSIX zone name (hence the sign is different from SQL
> convention). The other one is evidently being handled by this code path
> in check_timezone:
>
> /*
> * Try it as a numeric number of hours (possibly fractional).
> */
> hours = strtod(*newval, &endptr);
> if (endptr != *newval && *endptr == '\0')
> {
> /* Here we change from SQL to Unix sign convention */
> myextra.CTimeZone = -hours * SECS_PER_HOUR;
> myextra.HasCTZSet = true;
> }
>
> which I think is legacy code meant to deal with SQL-standard
> specification of timezone offsets as INTERVAL values. You get the same
> interpretation of sign when you use the SQL-spec syntax:
>
> regression=# set time zone interval '+03:00';
> SET
> regression=# select now();
> now
> -------------------------------
> 2011-04-27 00:44:53.560295+03
> (1 row)
>
> Like I said, too many standards with their fingers in this pie.
I assume we decided we can't improve this.
--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ It's impossible for everything to be true. +
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2011-09-07 02:54:39 | Re: [BUGS] documentation bug - behave of NEW a OLD in plpgsql's triggers |
Previous Message | Jack_Wu | 2011-09-07 01:11:32 | In Windows Server 2008 PostgreSQL8.3 service on Local Computer started and then stopped. |