| From: | Steve Crawford <scrawford(at)pinpointresearch(dot)com> |
|---|---|
| To: | jonathansfl <jonathanbrinkman(at)yahoo(dot)com> |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: TO_CHAR(timestamptz,datetimeformat) wrong after DST change |
| Date: | 2011-03-18 17:05:29 |
| Message-ID: | 4D8390D9.1070908@pinpointresearch.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On 03/18/2011 07:59 AM, jonathansfl wrote:
> My TO_CHAR function is now an hour off thanks to Daylight Savings Time.
> The dates are correct (I'm in EST: TZ=-04) but my function now returns TIME
> an hour early.
> (prior to DST we were TZ=-05).
>
> TIMESTAMPTZ data (v_dt): 2011-03-17 18:21:50-04
> FUNCTION SNIPPET: to_char(v_dt, 'mm/dd/yyyy hh:mi AM')
> FUNCTION RETURNS: 03/18/2011 09:21 AM
> FUNCTION SHOULD RETURN: 03/18/2011 10:21 AM
>
> postgres=# show time zone;
> TimeZone
> ------------------
> America/New_York
> (1 row)
>
You are leaving out something critical. Based on what you've shown us,
you shouldn't get either answer, you should get "03/17/2011 06:21 PM".
select to_char(timestamptz '2011-03-17 18:21:50-04', 'mm/dd/yyyy hh:mi AM');
to_char
-----------
03/17/2011 06:21 PM
My money is on an accidental conversion between timestamp and
timestamptz in some part of the function you haven't shown us.
Cheers,
Steve
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jonathan Brinkman | 2011-03-18 17:07:59 | Re: TO_CHAR(timestamptz,datetimeformat) wrong after DST change |
| Previous Message | Steve Crawford | 2011-03-18 16:58:17 | Re: why does extract ( HOUR FROM TIMESTAMP '2010-01-01 00:00:00' at time zone 'utc' ) == 16? |