【问题标题】:How to get UTC value for SYSDATE on Oracle如何在 Oracle 上获取 SYSDATE 的 UTC 值
【发布时间】:2010-11-12 13:46:00
【问题描述】:

可能是经典之作...您知道在 Oracle 上检索 SYSDATE 的 UTC 值的简单技巧吗(最好也可以在第 8 版上使用)。

现在我有自定义函数:(

干杯,

斯蒂芬

【问题讨论】:

    标签: oracle timezone utc


    【解决方案1】:

    你可以使用

    SELECT SYS_EXTRACT_UTC(TIMESTAMP '2000-03-28 11:30:00.00 -02:00') FROM DUAL;
    

    您可能还需要更改时区

    ALTER SESSION SET TIME_ZONE = 'Europe/Berlin';
    

    或阅读它

    SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM dual;
    

    【讨论】:

    • 嗯,诀窍是从 SYSDATE 转换。因此,首先您需要以某种方式确定 SESSIONTIMEZONE 是什么,并使用该知识来获取 SYS_EXTRACT_UTC 的偏移值 - 不是吗?
    • 是的,您可以从 oracle 中查看此链接,其中日期时间和时区参数:oracle.com/technology/obe/obe9ir2/obe-nls/datetime/datetime.htm
    • 由于一个细微的错误,我已经扩展了答案。
    • 非常感谢@Michael-O ;)
    【解决方案2】:
    select sys_extract_utc(systimestamp) from dual;
    

    但不能在 Oracle 8 上运行。

    【讨论】:

      【解决方案3】:

      通常,我使用 DATE 列,而不是某些答案使用的更大但更精确的 TIMESTAMP。

      以下内容将返回当前的 UTC 日期——一个 DATE。

      CAST(sys_extract_utc(SYSTIMESTAMP) AS DATE)
      

      我经常这样存储日期,通常字段名称以_UTC 结尾,以便开发人员清楚。这使我可以避免时区的复杂性,直到用户客户端的最后一分钟转换。 Oracle 可以使用某些数据类型存储时区详细信息,但这些类型需要比 DATE 更多的表空间,并且并不总是需要知道原始时区。

      【讨论】:

      • 我尝试将 2 个日期与这个(等于)进行比较,但没有得到预期的结果,所以我认为仍然返回了一个时间分量。对我有用的是使用 TRUNC 语句: Select * From Item Where TRUNC(Create_Date) = ( Select TRUNC(sys_extract_utc(SYSTIMESTAMP)) From DUAL)
      • DATE 列确实包含精确到一秒的时间组件。它们与 TIMESTAMP 列的不同之处在于 TIMESTAMP 存储的精度大于一秒。确实,如果要截断时间分量,则在上面添加 TRUNC 是您想要做的。
      【解决方案4】:

      我正在使用:

      SELECT CAST(SYSTIMESTAMP AT TIME ZONE 'UTC' AS DATE) FROM DUAL;
      

      对我来说效果很好。

      【讨论】:

        【解决方案5】:

        如果您想要一个时间戳而不只是使用 sysdate 的日期,您可以使用 systimestamp 指定一个时区:

        select systimestamp at time zone 'UTC' from dual
        

        输出:29-AUG-17 06.51.14.781998000 PM UTC

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-17
          • 1970-01-01
          • 2012-01-11
          • 1970-01-01
          • 2022-12-05
          相关资源
          最近更新 更多