0

我在 Postgres 中使用 to_timestamp 函数将整数值转换为时间戳。当我这样做时,时区设置为+1,存储时间增加一小时。

我位于英国,因此当前时区偏移量应为 +0,而不是 +1。

有谁知道如何手动停止/设置时区?

例子:

UPDATE my_table SET date_time_updated = to_timestamp(0) where id = 1;
SELECT date_time_updated FROM my_table WHERE id = 1; //Would expect midnight 01/01/1970

   date_time_updated
------------------------
 1970-01-01 01:00:00+01
(1 row)
4

1 回答 1

0

在内部,它与timestamp with time zone时区无关(听起来很奇怪)。

当 PostgreSQL 将其转换为字符串时,它会根据timezone参数的当前设置对其进行格式化。

所以改变你的会话的时区

SET timezone = 'Europe/London';

要更改使用的默认值,除非客户端覆盖它,请更改参数postgresql.conf并重新加载 PostgreSQL。

于 2021-02-16T16:23:27.863 回答