gpt4 book ai didi

postgresql - 是否可以检索在数据库中保存时间的时区?

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

我有 start_datetime 列,它的类型是 timestamp with timezone。我这样插入数据:

INSERT INTO tbl VALUES('2014-05-28 13:20:00+05');

然后像这样选择数据:

SELECT start_datetime FROM tbl

我得到这个值(来自 SELECT):2014-05-28 08:20:00+00,这是转换为 UTC 的相同日期,这是正确的。

但是我想知道是否可以从 timestamp with timezone 列类型中检索时区(示例中为 +05)?我必须知道将哪个时区时间戳插入数据库。或者,也许我必须将此数据存储在名为 user_timezone 的单独列中,并在那里存储时区数据?

最佳答案

All timezone-aware dates and times are stored internally in UTC. They are converted to local time in the zone specified by the TimeZone configuration parameter before being displayed to the client.

Source

因此,如果您需要知道源时区或通过 INSERT 或 UPDATE 语句指定的时区,则需要将其存储在单独的列中。

细心的程序员会使用其中之一

  • 时区的全名,例如“America/New_York”,或者
  • POSIX 格式,例如“EST5EDT”。

这两者都应该由 CHECK() 约束或外键引用来保护。记录在案的注意事项位于上面链接的同一部分。

This recent thread在 pgsql-hackers 邮件列表上有一些关于这个问题的很好的背景。

关于postgresql - 是否可以检索在数据库中保存时间的时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26781501/

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