2

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

我已经尝试过使用sys_extract_utc

select sys_extract_utc(systimestamp) from dual;

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

4

3 回答 3

4

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

select cast(sys_extract_utc(systimestamp) as DATE) from dual;
于 2016-10-18T07:05:23.273 回答
0

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

于 2016-10-18T07:37:45.177 回答
-1

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

SELECT TO_CHAR(SYS_EXTRACT_UTC(SYSTIMESTAMP), 'YYYY-MM-DD') FROM dual;
于 2017-12-07T21:02:57.037 回答