如何将时区偏移添加到时间戳?

问题描述 投票:0回答:1

如何在第三个查询中添加时区偏移量?

SELECT SESSIONTIMEZONE FROM DUAL;
# +01:00

SELECT TZ_OFFSET(SESSIONTIMEZONE) FROM DUAL;
# +01:00

SELECT TO_CHAR(TO_TIMESTAMP('19700101000000','YYYYMMDDHH24MISS')+NUMTODSINTERVAL(86400,'SECOND'),'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
# 1970-01-02 00:00:00

想要的结果是

# 1970-01-02 01:00:00
oracle timezone-offset
1个回答
0
投票

使用

FROM_TZ

ALTER SESSION SET TIME_ZONE='Europe/Paris';

然后:

SELECT TO_CHAR(
          FROM_TZ(
            TIMESTAMP '1970-01-01 00:00:00' + INTERVAL '86400' SECOND,
            'UTC'
          ) AT TIME ZONE SESSIONTIMEZONE,
          'YYYY-MM-DD HH24:MI:SS'
       ) AS ts
FROM   DUAL
TS
1970-01-02 01:00:00

小提琴

© www.soinside.com 2019 - 2024. All rights reserved.