不同的时区输出错误的值
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
中做一些调整 请参阅此 以获得更多见解
我想知道为什么我从这个 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
中做一些调整 请参阅此