PostgreSQL и UT C даты в других часовых поясах неверны - PullRequest
0 голосов
/ 26 марта 2020

У меня проблема с моими часовыми поясами в postgresql.

Я храню их в типе данных "отметка времени без часового пояса". Так что все в UT C.

Когда я делаю SHOW TIMEZONE;, я получаю 'UT C'.

Я живу в Брюсселе, поэтому Europe / Brussels utc + 1.

Когда я выполняю следующие запросы, я не получаю правильный вывод:

SELECT
    '2020-01-01 12:00:00'::timestamp AT TIME ZONE 'utc' AT TIME ZONE 'europe/brussels'
    // outputs '2020-01-01 12:00:00' but it should be '2020-01-01 13:00:00'

SELECT
    '2020-01-01 12:00:00'::timestamp AT TIME ZONE 'america/new_york' AT TIME ZONE 'europe/brussels'
    // outputs '2020-01-01 17:00:00' but it should be '2020-01-01 18:00:00'
    // america/new_york -5
    // europe/brussels +1
    // so difference should be 6 hours

SELECT
    '2020-01-01 12:00:00'::timestamp AT TIME ZONE 'utc' AT TIME ZONE 'america/new_york'
    // outputs '2020-01-01 06:00:00' but it should be '2020-01-01 07:00:00'

SELECT
    '2020-01-01 12:00:00'::timestamp AT TIME ZONE 'utc' AT TIME ZONE 'europe/moscow'
    // outputs '2020-01-01 14:00:00' but it should be '2020-01-01 15:00:00'

Как видите, часовые пояса> UT C (т. Е. +) Отсутствуют 1 час. Часовые пояса

В чем проблема? Мой расчет неверен или мои настройки неверны? Что происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...