OracleSQL将Date字段转换为另一个时区

时间:2017-11-10 13:03:26

标签: sql oracle

在我的Oracle数据库中,我有一个DATE列,其中存储日期值。 所有日期值均位于TimeZone Europe/Berlin中。现在,应用程序将其TimeZone更改为UTC,这意味着我需要将所有现有日期从Europe/Berlin转换为UTC

有没有办法在Oracle中本地执行此操作?

1 个答案:

答案 0 :(得分:2)

使用FROM_TZ( timestampvalue, timezone )将时间戳转换为特定时区的时间戳,然后您可以使用AT TIME ZONE 'UTC'将其转换为UTC时区并将其转换回日期:

SELECT CAST(
         FROM_TZ(
           CAST( your_column AS TIMESTAMP ),
           'Europe/Berlin'
         )
         AT TIME ZONE 'UTC'
         AS DATE
       )
FROM   your_table;