У меня есть столбец starts_at
с типом TIMESTAMP WITHOUT TIME ZONE
, поскольку он представляет время встречи и не должен изменяться во время смены летнего времени.
Однако наша библиотека, которая обрабатывает повторяющиеся встречи, нуждается в этомвремя в UTC.Я пытаюсь преобразовать starts_at
в UTC, но вижу, что получаю времена, представляющие MDT (летнее время), а не MST (стандартное время).
Например, возьмите следующее:
SELECT starts_at, timezone('America/Denver', starts_at) AS new_starts_at
Я ожидал бы получить следующий результат:
--------------------------------------------------
| starts_at | new_starts_at
--------------------------------------------------
| 2018-09-04 13:05:00 | 2018-09-04 20:05:00+00
Вместо этого я получаю следующее:
--------------------------------------------------
| starts_at | new_starts_at
--------------------------------------------------
| 2018-09-04 13:05:00 | 2018-09-04 19:05:00+00
new_starts_at
должен возвращаться в MST
, что будет 2018-09-04 20:05:00+00
.У меня сложилось впечатление, что использование часового пояса Олсена (America/Denver
) сообщит Postgres о том, был ли сдвиг DST на месте.Если я заменим America/Denver
на MST
, я увижу правильный результат.
Я уверен, что это просто неправильное понимание типов часовых поясов Postgres с моей стороны.Тем не менее, заранее спасибо за образование!