首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PostgreSQL CURRENT_TIMESTAMP没有显示正确的时间

PostgreSQL CURRENT_TIMESTAMP没有显示正确的时间
EN

Stack Overflow用户
提问于 2022-06-16 02:55:22
回答 1查看 297关注 0票数 0

我试过得到现在的时间。这就是我运行的代码:

代码语言:javascript
运行
复制
SELECT to_char(clock_timestamp() AT TIME ZONE 'UTC' AT TIME ZONE 'Asia/Jakarta', 'YYYY-MM-DD HH24:MI:SS') AS clock_timestamp

但这是我得到的,与实际时间不同: 2022-06-15 19:51:46。

参考见附图。示例

我也附加了时区,但显示的时间不对。有人想办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2022-06-16 04:18:02

clock_timestamp()函数已经返回带有时区的时间戳。没有必要在您的SELECT语句中转换为UTC。

更详细的解释可以在AT TIME ZONE操作符在https://www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-ZONECONVERT的文档中找到。

当您在带有时区的时间戳上使用AT TIME ZONE运算符时,结果类型是没有时区的时间戳(根据文档)。通过添加第二个AT TIME ZONE操作符,您可以获得一个没有时区的时间戳,并使它成为一个带有时区的时间戳。在这种双重转换中,您会丢失,然后添加时区,但是偏移量的计算与您所认为的相反。实际上,您所做的是减去时区偏移,而不是添加时区偏移,这就是为什么雅加达看起来落后于UTC,而它应该领先。

顺便提一下,您确定您真的想使用clock_timestamp()而不是current_timestamp()吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72639935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档