Мы конвертируем временные метки в эпоху, делаем некоторые математические данные, а затем преобразуем их обратно в метки времени. Часовой пояс в базе: TIMESTAMP WITHOUT TIME ZONE
.Различные результаты для эпохи экстракций на разных серверах PostgreSQL
С переходом на летнее время здесь во времена Великобритании на один час на одном сервере, а не на другой, так что я сделал небольшой тест:
SHOW SERVER_VERSION;
SHOW TIMEZONE;
SELECT extract(EPOCH FROM TIMESTAMP '1970-01-01');
На одном сервере я получаю
server_version
----------------
9.1.15
(1 row)
TimeZone
----------
GB
(1 row)
date_part
-----------
0
(1 row)
Но с другой
server_version
----------------
9.3.6
(1 row)
TimeZone
----------
GB
(1 row)
date_part
-----------
-3600
(1 row)
есть ли какие-либо параметры сервера, которые могут быть причиной этого?
Или изменилось поведение extract
после Postgres 9.1?
Догадка: попробуйте вынуть SELECT (EPOCH FROM TIMESTAMP '1970-01-01' :: временная метка с часовым поясом); ' –
Обычно базой, которая имеет больше смысла в контексте вопроса, является' '1970-01 -01 ':: отметка времени в часовом поясе' GMT''. Извлечение эпохи из этого должно работать как ожидалось как в версиях до 9.2, так и после 9.2. –