172 похожих чатов

Привет. Может кто подсказать, почему может не работать set time

zone.
Есть два сервера с постгресом 9.6.20. На обоих установлена таймзона Europe/Moscow (что в постгресе, что на самом сервере).

Выполняю набор команд на одном сервере:
set time zone 'Europe/Moscow';
SELECT '2021-03-17T12:34:11+00:00'::timestamptz::timestamp; # получаю 15:34

set time zone 'utc';
SELECT '2021-03-17T12:34:11+00:00'::timestamptz::timestamp; # получаю 12:34

А вот на втором сервере:
set time zone 'Europe/Moscow';
SELECT '2021-03-17T12:34:11+00:00'::timestamptz::timestamp; # получаю 15:34

set time zone 'utc';
SELECT '2021-03-17T12:34:11+00:00'::timestamptz::timestamp; # получаю 15:34
В чем может быть причина такой разницы?

9 ответов

7 просмотров

Казалось бы, time zone почему-то не устанавливается. Вы такой запрос попробуйте, например: SELECT '2021-03-17T12:34:11+00:00'::timestamptz, '2021-03-17T12:34:11+00:00'::timestamptz::timestamp; Первое поле — для того, чтобы было видно смещение текущей time zone.

Andrey-Lemets Автор вопроса
Yaroslav Schekin
Казалось бы, time zone почему-то не устанавливаетс...

В обоих случаях возвращается 2021-03-17 15:34:11+03 То есть ощущение, что set time zone не применяется. При этом show time zone возвращает именно установленное значение. Магия какая-то

Andrey Lemets
В обоих случаях возвращается 2021-03-17 15:34:11+0...

Значит, действительно не применяется, казалось бы. Можно и "current_setting('TimeZone')" добавить именно в этот запрос. А каким клиентом выполняются запросы? Если не psql — проверьте в нём. Или, может, где-то есть connection pooler (транзакционный)? Если нет — покажите "SELECT version();" с каждого сервера.

Andrey-Lemets Автор вопроса
Yaroslav Schekin
Значит, действительно не применяется, казалось бы....

Версия совпадает PostgreSQL 9.6.20 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit Запросы делаю через psql без каких-либо прослоек.

Andrey Lemets
Версия совпадает PostgreSQL 9.6.20 on x86_64-pc-l...

Очень странно... возможно, что там что-то не так с tzdata (я что-то подобное когда-то слышал)? Добавьте current_setting('TimeZone') в запросы и перепроверьте, всё же (мало ли что).

Andrey-Lemets Автор вопроса
Yaroslav Schekin
Очень странно... возможно, что там что-то не так с...

Перепроверил. Настройки задаются корректно. Спасибо, посмотрю в сторону tzdata.

Andrey Lemets
Перепроверил. Настройки задаются корректно. Спаси...

Ну а другие варианты указания UTC (например, Etc/UTC и т.п.) работают? Что там в pg_timezone_names и pg_timezone_abbrevs на "проблемном" сервере?

Andrey-Lemets Автор вопроса
Yaroslav Schekin
Ну а другие варианты указания UTC (например, Etc/U...

Да, большое спасибо! Проблема в этих таблицах. Они в utc-строках содержат московское смещение...

Andrey Lemets
Да, большое спасибо! Проблема в этих таблицах. Он...

Ничего себе (додумался же кто-то). Не за что! ;)

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта