【问题标题】:Retrieving UTC timestamptzs from postgres in the correct time zone从正确时区的 postgres 中检索 UTC 时间戳
【发布时间】:2015-11-04 22:20:20
【问题描述】:

我在我的 postgres 数据库中存储带有时区的时间戳。服务器时区为 UTC。所有时间戳都存储为 UTC 日期时间。

现在,我想检索这些时间戳,但要针对特定​​时区(例如美国/太平洋)。由于夏令时,正确的时区有时是 PDT,有时是 PST。所以我不能只运行像select t at time zone 'pdt' 这样的查询,因为这对于pst 日期来说是错误的。

有没有办法从数据库中提取正确时区的日期?

【问题讨论】:

    标签: postgresql time


    【解决方案1】:

    根据documentation,连同TIME ZONE 代码,您还可以指定语言环境。对于您的情况,您可以使用类似的东西:

    ds=# SELECT current_setting('TIMEZONE');
     current_setting 
    -----------------
     UTC
    (1 row)
    
    ds=# SELECT now();
                  now              
    -------------------------------
     2015-11-05 00:35:03.126317+00
    (1 row)
    
    pm7=# SELECT now() AT TIME ZONE 'America/Los_Angeles';
              timezone          
    ----------------------------
     2015-11-04 16:35:06.344367
    (1 row)
    

    【讨论】:

    • 啊哈。我没有意识到我可以使用America/Los_Angeles!我会测试一下。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-11-14
    • 2023-01-13
    • 2013-03-20
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多