Для начала, официальный документ гласит следующее:
Для решения этих проблем мы рекомендуем использовать типы даты / времени, которые содержат дату и время при использовании времени.зоны.Мы не рекомендуем использовать тип time with time zone (хотя он поддерживается PostgreSQL для устаревших приложений и для соответствия стандарту SQL).PostgreSQL предполагает использование вашего местного часового пояса для любого типа, содержащего только дату или время.
И при отображении данных с отметкой времени он говорит:
Все даты с учетом часового пояса ивремя хранится внутри UTC.Они преобразуются в местное время в зоне, указанной параметром конфигурации TimeZone, перед тем, как они будут отображаться на клиенте.
Поэтому я определил столбцы как тип данных timestamp
и вставил в таблицу как "2018-05-24 09:30:00+05:30"
.Исходя из упомянутых выше моментов, я надеялся увидеть метку времени (в выводе запроса SELECT) в UTC, то есть 2018-05-24 04:00:00
, поскольку TIME ZONE
было установлено в UTC.И когда я изменил параметр на
SET TIME ZONE INTERVAL '+05:30' HOUR TO MINUTE;
, я надеялся увидеть 2018-05-24 09:30:00
.Но, независимо от параметра часового пояса, я вижу вывод запроса как 2018-05-24 09:30:00
.Как это наблюдение согласуется с документацией?
Вставка в базу данных была сделана с помощью Javascript, тогда как другие операции были выполнены с psql
.