Postgresql Postgres时间:时区转换错误
让我们假设我们有一些日期,例如Postgresql Postgres时间:时区转换错误,postgresql,Postgresql,让我们假设我们有一些日期,例如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-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个小时而不是将其相加呢?
请注意,此
选择当前设置(“时区”)
返回UTC
您的第二条语句将给定的时间戳解释为欧洲/赫尔辛基时区的时间戳,并将其转换为带时区的时间戳psql
根据会话时区打印时间戳的结果
要将时间戳从UTC转换为欧洲/赫尔辛基,您应使用带时区的时间戳:
SELECT '2018-06-25T06:00:00Z'::TIMESTAMPTZ AT TIME ZONE 'Europe/Helsinki';
这将创建一个时间戳并将其转换为欧洲/赫尔辛基。您可以通过以下方式更改输出的时区:
SET SESSION TIMEZONE TO 'Europe/Helsinki';