Я пытаюсь обернуть голову вокруг часовых поясов Postgresql, и я не могу понять это. EST - это «Стандартное восточное время» в Америке, которое обычно составляет UTC-5 .
.
Пример 1: Базовый тест
select '08/31/2011 12:00 pm EST'::timestamptz at time zone 'EST';
timezone
---------------------
2011-08-31 12:00:00
Пример 2: смещение + 5
select '08/31/2011 12:00 pm EST' at time zone '+5';
timezone
---------------------
2011-08-31 12:00:00
Пример 3: смещение -5
select '08/31/2011 12:00 pm EST' at time zone '-5';
timezone
---------------------
2011-08-31 22:00:00
Ясно, что все наоборот. EST снова ... должен быть UTC-5 . Теперь я провел поиск по документации, и она объясняет, что все это «POSIX», , что назад . (Положительное смещение к западу от GMT, а отрицательное смещение к востоку от GMT).
Однако, как мне обойти это? На прикладном уровне я всегда могу поменять знак + на знак -, но это кажется мне беспорядочным. Итак, мой окончательный вопрос.
На уровне базы данных (Postgres) есть ли способ использовать синтаксис «В часовом поясе», чтобы GMT-5 соответствовало EST? Или мне просто нужно инвертировать все на уровне приложений?