У меня проблема с моими часовыми поясами в 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 час. Часовые пояса
В чем проблема? Мой расчет неверен или мои настройки неверны? Что происходит?