Re: BUG #16797: EXTRACT(EPOCH FROM timestamp) is not using local timezone
От | Tom Lane |
---|---|
Тема | Re: BUG #16797: EXTRACT(EPOCH FROM timestamp) is not using local timezone |
Дата | |
Msg-id | 2527205.1609521492@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: BUG #16797: EXTRACT(EPOCH FROM timestamp) is not using local timezone (Dana Burd <djburd@gmail.com>) |
Ответы |
Re: BUG #16797: EXTRACT(EPOCH FROM timestamp) is not using local timezone
|
Список | pgsql-bugs |
Dana Burd <djburd@gmail.com> writes: > Can I suggest a slight alteration in the (9.9.1. EXTRACT) epoch > documentation to help others: > "For timestamp with time zone values, the number of seconds since > 1970-01-01 00:00:00 UTC (can be negative); for date and timestamp values, > the number of seconds since 1970-01-01 00:00:00 UTC (date and timestamp > will assume UTC regardless of local timezone in order to maintain > immutability - one may explicitly cast timestamp to timestamptz to assume a > different timezone); for interval values, the total number of seconds in > the interval" Hmm, that's not really right either; it appears to imply that the epoch calculation is timezone-aware, which it specifically isn't for date and timestamp cases. An example (presuming US DST rules): regression=# select extract(epoch from date '2020-03-09') - extract(epoch from date '2020-03-08'); ?column? ---------- 86400 (1 row) regression=# select extract(epoch from timestamp '2020-03-09') - extract(epoch from timestamp '2020-03-08'); ?column? ---------- 86400 (1 row) regression=# select extract(epoch from timestamptz '2020-03-09') - extract(epoch from timestamptz '2020-03-08'); ?column? ---------- 82800 (1 row) The last case knows that there was a DST transition in between, the first two don't take that into account. (You could argue that this is more a property of the types' input conversion routines than of extract() itself, but I think the point is valid anyway.) Perhaps a better phrasing is "for date and timestamp values, the nominal number of seconds since 1970-01-01 00:00:00, without regard to timezone or daylight-savings rules". regards, tom lane
В списке pgsql-bugs по дате отправления: