Re: time math - Bug or expected behavior?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: time math - Bug or expected behavior?
Дата
Msg-id 2261.1219806715@sss.pgh.pa.us
обсуждение исходный текст
Ответ на time math - Bug or expected behavior?  (Adam Rich <adam.r@sbcglobal.net>)
Список pgsql-general
Adam Rich <adam.r@sbcglobal.net> writes:
> I traced a bug in our application down to this basic operation:
> set timezone to 'US/Eastern';

> select '11/02/2008'::timestamptz, '12:10'::time,
> '11/02/2008'::timestamptz + '12:10'::time;

> I have a date and a time stored separately and I want to combine them,
> and use them in some timezone-aware calculations.  When I add the time
> 12:10 to the date 11/2/08, I expect the timestamp "11/2/08 12:10" but
> instead, I get "11/2/08 11:10".

I don't see why that surprises you in the least.
'11/02/2008'::timestamptz means 11/02/2008 00:00 local time, and (given
US DST rules) 11/2/08 11:10 is what the time will be 12 hours and 10
minutes later.

If you want non-DST-aware timekeeping, use timestamp without time zone.

> Still, I would have expected the above behavior
> when adding an interval to a timestamp, but not a time.

How could a time work differently from an interval in this context?

            regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Adam Rich
Дата:
Сообщение: time math - Bug or expected behavior?
Следующее
От: Tino Wildenhain
Дата:
Сообщение: Re: Postgre connect on Postgre