gpt4 book ai didi

postgresql - Postgres 时间 : wrong conversion with time zones

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

假设我们有一些日期,例如 2018-06-25T06:00:00Z。因此,如果我执行以下操作,我会得到相同的日期:

select '2018-06-25T06:00:00Z'::timestamp at time zone 'UTC';

现在,我想获取该日期的本地时间,因为我位于赫尔辛基,所以我执行以下操作:

select '2018-06-25T06:00:00Z'::timestamp at time zone 'Europe/Helsinki';

据我所知,赫尔辛基目前是 +3 小时,我的期望是 2018-06-25 09:00:00.000000,但是,出于某种原因,我得到 2018-06- 25 03:00:00.000000

那么,为什么它决定扣除而不是增加这 3 个小时?

请注意,此 select current_setting('timezone') 返回 UTC

最佳答案

您的第二条语句将给定的时间戳解释为欧洲/赫尔辛基时区的时间戳,并将其转换为 TIMESTAMP WITH TIMEZONEpsql 根据SESSION TIMEZONE 打印时间戳的结果。

要将您的时间戳从 UTC 转换为欧洲/赫尔辛基,您应该使用带时区的时间戳:

SELECT '2018-06-25T06:00:00Z'::TIMESTAMPTZ AT TIME ZONE 'Europe/Helsinki';

这将创建一个时间戳并将其转换为 Europe/Helsinki。您可以更改输出的时区:

SET SESSION TIMEZONE TO 'Europe/Helsinki';

关于postgresql - Postgres 时间 : wrong conversion with time zones,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57817126/

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