【问题标题】:Different TimeZone outputs wrong values不同的时区输出错误的值
【发布时间】:2019-08-02 00:54:02
【问题描述】:

我想知道为什么我的帖子与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

【问题讨论】:

    标签: postgresql timestamp timezone timestamp-with-timezone


    【解决方案1】:

    我认为问题在于您如何设置时区。

    您可以尝试将SET timezone TO 更改为SET TIME ZONE 看看是否有效?

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

    【讨论】:

    • The docs 说:“SET TIME ZONE valueSET timezone TO value 的别名。”
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      实际上我正在使用DBeaver 作为数据库 IDE,我们需要在dbeaver.ini 中进行一些调整,请参阅此post 以获得更多信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-19
        • 1970-01-01
        • 1970-01-01
        • 2017-07-08
        • 2016-04-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多