【问题标题】:Converting a stored UTC time in Oracle 10g to local time将 Oracle 10g 中存储的 UTC 时间转换为本地时间
【发布时间】:2015-11-07 03:21:08
【问题描述】:

我有一个 varchar2(20) 列,其值类似于“2015-01-26T20:29:51Z”。 我使用 to_date(dEnteredDate,'YYYY-MM-DD"T"HH24:MI:SS"Z"') 成功地将其转换为日期

我希望通过减去我的 SessionTimeZone(当前为 -07:00)将其转换为本地时间,并且有一个带时间的常规日期,没有时区信息。

我在 MS SQL 中使用;

SET @diff = datediff(hh,GetUTCDate(), GetDate());
SET @dlocal = DATEADD(hh, @diff, @UTCDateTime)

如何在 Oracle 10g 中完成同样的任务?

【问题讨论】:

    标签: oracle datetime timezone oracle10g utc


    【解决方案1】:

    你可以这样做:

    select to_timestamp(dEnteredDate,'YYYY-MM-DD"T"HH24:MI:SS"Z"')- interval '7' hour from test_3;
    

    这里- interval '7' hour 将减去所需的时差,并在没有时区的情况下为您提供所需的结果。

    【讨论】:

    • 您如何管理夏令时?每年更改两次查询?
    【解决方案2】:

    你可以这样做

    select cast(to_timestamp_TZ(dEnteredDate||' UTC','YYYY-MM-DD"T"HH24:MI:SS"Z" tzr') at local as date) 
    from ...
    

    【讨论】:

      猜你喜欢
      • 2018-07-27
      • 2018-09-17
      • 2013-07-09
      • 2014-07-18
      • 2021-02-04
      • 2010-09-15
      • 2011-05-01
      • 2019-04-30
      相关资源
      最近更新 更多