gpt4 book ai didi

postgresql - PostgreSQL 时区

转载 作者:行者123 更新时间:2023-11-29 12:42:00 28 4
gpt4 key购买 nike

我尝试返回特定时区的值,但我遇到了一些奇怪的响应行为:

SELECT created_at AT TIME ZONE 'US/Pacific' - created_at,
NOW() AT TIME ZONE 'US/Pacific' - NOW(),
NOW() now FROM "my_table"
ORDER by id DESC LIMIT 1

返回

10:00:00 | -10:00:00 | 2017-08-02 17:36:30.660477+03

为什么相同的函数为表中的列和动态时间返回相反的值 (-10/+10)?

谢谢!

最佳答案

类型 timestamp without timezone 被解释为“本地时区”。
因此,您的 created_at AT TIME ZONE 'US/Pacific' 值被视为给定时区的时间戳。

虽然 NOW() 返回 timestamp with timezone,因此您的 NOW() AT TIME ZONE 'US/Pacific' 值必须是转换为不同的时区。

查看文档:

编辑

试试这个:

SELECT created_at AT TIME ZONE 'US/Pacific' AS crated_at_us_pacific, created_at,
NOW() AT TIME ZONE 'US/Pacific' AS now_us_pacific, NOW() AS now
FROM "my_table"
ORDER by id DESC
LIMIT 1

关于postgresql - PostgreSQL 时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45464165/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com