将日期/时间从UTC转换为会话时区

时间:2016-08-06 13:05:38

标签: sql oracle

我的程序以UTC格式收到时间戳,例如Tue, 31 May 2016 11:43:47 UTC。如何将它们转换为会话当前时区的时间戳?

1 个答案:

答案 0 :(得分:-1)

使用tz_offset函数获取session's timezone的时区偏移量,然后使用from_tz函数将字符串转换为timestamp with time zone,并使用{{3更改它以使用会话的时区。

select from_tz(to_timestamp('Tue, 31 May 2016 11:43:47 UTC'
                           ,'Dy, dd Mon yyyy hh24:mi:ss "UTC"')
              , 'UTC')
       at time zone tz_offset(sessiontimezone)
      ,sessiontimezone
from   dual;

31/05/2016 19:43:47.000000000 +08:00    Australia/Perth