Согласно документации, функция PostgreSQL localtimestamp
возвращает «текущую дату и время», а значение «без часового пояса». Но я обнаружил, что возвращаемое значение зависит не только от текущего абсолютного времени, но и от настройки часового пояса клиента:
clan_1=> SET timezone='UTC';
SET
clan_1=> SELECT localtimestamp;
localtimestamp
----------------------------
2019-04-15 12:50:23.754272
(1 row)
clan_1=> SET timezone='Europe/Prague';
SET
clan_1=> SELECT localtimestamp;
localtimestamp
----------------------------
2019-04-15 14:50:33.678917
(1 row)
В моих функциях БД мне нужно получать согласованные данные (типа отметка времени , а не отметка времени ) независимо от того, какой клиент (и его настройка часового пояса) используется для их вызова. После некоторых исследований я обнаружил, что должно работать следующее:
SELECT current_timestamp AT TIME ZONE 'UTC';
Есть ли лучший (более простой) способ?
PostgreSQL 10,6