Тип PostgreSQL «timestamp with time zone» фактически не сохраняет смещение часового пояса в каждой записи.Он просто нормализует все до UTC внутри.
Точка «отметка времени с часовым поясом» заключается в том, что поскольку сохраненное значение представлено в известном часовом поясе, оно однозначно представляет конкретную точку ввремя.Альтернатива, «отметка времени без часового пояса», неоднозначна, потому что у нее есть время, но она не говорит о том, в какой зоне она находится - сегодня в записи может быть полдень, но разве это полдень в Гринвиче?Полдень в Нью-Йорке?Полдень в Токио?Тип «с часовым поясом» позволяет избежать этой проблемы, потому что зона всегда является гринвичской.
(Для сравнения: я считаю, что у Oracle есть «отметка времени с часовым поясом», которая фактически сохраняет смещение в каждой записи, и«временная метка с локальным часовым поясом», которая нормализует все в соответствии с часовым поясом сервера, чтобы избежать необходимости сохранять смещения для каждой записи. «Временная метка PostgreSQL с часовым поясом» названа как первая, но ведет себя как последняя.*
Однако, похоже, что вы на самом деле не храните «временную метку с часовым поясом» в своей таблице;вы, по сути, храните строку и преобразуете в timestamp
как часть select
.Ключевое слово timestamp
само по себе относится к варианту «без часового пояса» (как того требует стандарт SQL), а в документации PostgreSQL говорится:
В литерале, который был определен как timestamp without time zone
, PostgreSQL будет молча игнорировать любую индикацию часового пояса.Таким образом, результирующее значение получается из полей даты / времени во входном значении и не корректируется для часового пояса.
Я ожидаю, что то же самое относится и к приведению, хотя, если этов случае, если не совсем понятно, почему ваш вывод (timestamp
значений) включает имена TZ.Но вы, вероятно, хотите вместо этого привести timestamptz
или создать отдельный столбец timestamptz
(чтобы значения могли быть проиндексированы).
Документация PostgreSQL о типах даты / времени хороший справочник.