【问题标题】:How to convert sysdate to UTC time in oracle如何在 oracle 中将 sysdate 转换为 UTC 时间
【发布时间】:2016-10-18 06:58:59
【问题描述】:

我有一个查询要从 sysdate 中减去一个日期。但是我拥有的日期对象是 UTC 但sysdate 没有给我UTC 时间。如何将 sysdate 转换为 UTC 日期。

我已经尝试过使用sys_extract_utc

select sys_extract_utc(systimestamp) from dual;

这很好用,并给了我正确的 UTC 时间戳。但是它返回的对象与sysdate 不同,所以当我从这个对象中减去日期时,我得到一个INTERVAL DAY to SECOND,但它应该是一个数字。

【问题讨论】:

    标签: sql oracle datetime sysdate


    【解决方案1】:

    sys_extract_utc(systimestamp) 的结果使用 CAST 是解决此问题的方法,因为 sys_extract_utc 返回 timestamp

    select cast(sys_extract_utc(systimestamp) as DATE) from dual;
    

    【讨论】:

      【解决方案2】:

      sys_extract_utc 返回时间戳,并且您正在寻找日期,所以您只需要一个演员表: select CAST(sys_extract_utc(systimestamp) as DATE) from dual;

      【讨论】:

        【解决方案3】:

        如果您不想要“时间”部分:

        SELECT TO_CHAR(SYS_EXTRACT_UTC(SYSTIMESTAMP), 'YYYY-MM-DD') FROM dual;
        

        【讨论】:

          猜你喜欢
          • 2014-05-06
          • 2022-12-08
          • 2015-02-19
          • 2020-12-07
          • 1970-01-01
          • 1970-01-01
          • 2022-10-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多