【发布时间】:2019-04-15 13:24:48
【问题描述】:
根据文档,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)
在我的数据库函数中,无论使用什么客户端(及其时区设置)调用,我都需要获取一致的数据(类型为 timestamp,而不是 timestamptz)他们。经过一番研究,我发现以下应该可以工作:
SELECT current_timestamp AT TIME ZONE 'UTC';
有没有更好(更简单)的方法?
PostgreSQL 10.6
【问题讨论】:
标签: postgresql timezone