PostgreSQL date() с часовым поясом

У меня возникла проблема с правильным выбором дат из 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

Но ни одно преобразование в правильную дату в часовом поясе.

43
задан Erwin Brandstetter 3 November 2014 в 18:11
поделиться