gpt4 book ai didi

postgresql - 不了解 PostgreSQL 的时区行为

转载 作者:行者123 更新时间:2023-11-29 11:55:03 26 4
gpt4 key购买 nike

我的本​​地时区是 PRC(中国),也就是 UTC+8,但是

select (timestamp '2016-09-01 00:00:00' at time zone 'PRC') 
- (timestamp '2016-09-01 00:00:00' at time zone 'UTC');

返回 -08:00:00。不应该是 +08:00:00 吗?

我的 PostgreSQL 版本是 9.5。

最佳答案

不,它在做正确的事 - 但当您向它提供一个表达式 without 作为左手的时区时,您必须理解 at time zone 的含义边。它基本上将其解释为指定时区中的时间戳

因此 '2016-09-01 00:00:00' at time zone 'PRC' 表示“中国 9 月 1 日午夜的瞬间” - 即 2016-08 -31T16:00:00Z。

'2016-09-01 00:00:00' at time zone 'UTC' 表示“UTC 9 月 1 日午夜的瞬间”- 即 2016-09 -01T00:00:00Z。

所以您要求的是 2016-08-31T16:00:00Z - 2016-09-01T00:00:00Z,这确实是 -8 小时。

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

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