У меня возникла проблема с правильным выбором дат из Postgres - они хранятся в формате UTC, но неправильное преобразование с помощью функции Date().
Преобразование временной метки в дату дает мне неправильную дату, если уже прошло 16:00 по тихоокеанскому стандартному времени.
2012-06-21
в этом случае должно быть 2012-06-20
.
Тип данных столбца starts_at
— это отметка времени без часового пояса
. Вот мои запросы:
Без преобразования в часовой пояс PST:
Select starts_at from schedules where id = 40;
starts_at
---------------------
2012-06-21 01:00:00
Преобразование дает следующее:
Select (starts_at at time zone 'pst') from schedules where id = 40;
timezone
------------------------
2012-06-21 02:00:00-07
Но ни одно преобразование в правильную дату в часовом поясе.