不同的时区输出错误的值

Different TimeZone outputs wrong values

我想知道为什么我从这个 post

得到不同的时间
set timezone to 'UTC';

SELECT timestamptz '2012-03-05 17:00:00+0';  
Expected :2012-03-05 17:00:00+00
Got : 2012-03-05 22:30:00

SET timezone TO 'Europe/Berlin';

SELECT '2012-03-05 17:00:00+0'::timestamptz;  
Expected :  2012-03-05 18:00:00+01
Got: 2012-03-05 22:30:00



SELECT timestamptz '2012-03-05 18:00:00+1';
Expected : 2012-03-05 17:00:00+00
Got : 2012-03-05 22:30:00

我认为问题在于您设置时区的方式。

你能试试把 SET timezone TO 改成 SET TIME ZONE 看看行不行?

您可以查看以下文档以获得更多帮助: https://www.postgresql.org/docs/9.1/datatype-datetime.html#DATATYPE-TIMEZONES

您的期望是正确的。问题一定是你是 运行 不同数据库会话中的语句。

SET的范围仅限于当前会话。

实际上我正在使用 DBeaver 作为数据库 IDE 我们需要在 dbeaver.ini 中做一些调整 请参阅此 以获得更多见解