我正在查询从sysdate中减去日期。但是,我所拥有的日期对象是UTC格式,但sysdate
没有给我UTC
时间。如何将sysdate转换为以UTC为单位给出日期。
我已尝试使用sys_extract_utc
select sys_extract_utc(systimestamp) from dual;
这很好,并给我正确的UTC时间戳。但是它返回的对象与sysdate
不同,所以当我从这个对象中减去日期时,我得到一个INTERVAL DAY to SECOND
,但它应该是一个数字。
答案 0 :(得分:2)
对sys_extract_utc(systimestamp)
的结果使用CAST是解决此问题的方法,因为sys_extract_utc
返回timestamp
。
select cast(sys_extract_utc(systimestamp) as DATE) from dual;
答案 1 :(得分:0)
sys_extract_utc返回时间戳,你正在寻找日期,所以你只需要一个演员:
select CAST(sys_extract_utc(systimestamp) as DATE) from dual;
答案 2 :(得分:0)
如果您不想要“时间”部分:
SELECT TO_CHAR(SYS_EXTRACT_UTC(SYSTIMESTAMP), 'YYYY-MM-DD') FROM dual;