gpt4 book ai didi

postgresql - 将 UTC 时间戳转换为 timestamptz

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

如何将 UTC 格式的 timestamp 转换为 timestamptz

如果我的本地时区是 GMT-1 并且我运行:

选择 '2017-01-01 00:00:00'::timestamptz

我得到:

2017-01-01 00:00:00-01

但我想要:

2017-01-01 01:00:00-01

最佳答案

更好:

SELECT timestamp '2017-01-01 00:00:00' AT TIME ZONE 'UTC';

AT TIME ZONE 构造之后没有额外的转换。它返回 timestamp with time zone (= timestamptz) 对于 timestamp without time zone (= timestamp) 输入,反之反之亦然。

对于给定的示例,提供时间戳常量的最短、最有效的方法是 timestamp '2017-01-01'。或者使用转换,几乎一样好:'2017-01-01'::timestamp。时间组件 00:00:00 在缺失时假定。

没有“UTC 时间戳”这样的东西timestamp 不包含时区信息。只有您知道它应该位于 UTC 时区。

类型名称“timestamp with time zone”有点误导。 timestamptz 也不携带任何时区信息。给定的时区名称、缩写或偏移量用于计算相应的 UTC 时间。文本输出(显示)适应您 session 的当前时区设置。仅存储相应 UTC 时间的裸值。时区本身从不存储。如果您需要它,请将其另外存储在另一列中。在您的特定情况下,UTC 恰好也是用于输入的时区。

详细解释:

关于postgresql - 将 UTC 时间戳转换为 timestamptz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45120137/

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