如何获取Oracle上的SYSDATE的UTC值
可能是一个经典的…你会知道一个简单的技巧来检索Oracle的SYSDATE的UTC值(最好也会得到在第八版的工作)。
现在我已经定制function:(
干杯,
斯特凡
您可以使用
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;
select sys_extract_utc(systimestamp) from dual;
不过,在Oracle 8上不起作用。
通常,我使用DATE列,而不是更大但更精确的TIMESTAMP。
以下内容将返回当前的UTCdate – DATE。
CAST(sys_extract_utc(SYSTIMESTAMP) AS DATE)
使用UTCdate非常好,因为我不必担心时区的复杂性。 只有最后的显示给用户需要补偿或其他麻烦。
如果你想要一个时间戳而不是sysdate的date,你可以使用systimestamp指定一个时区:
select systimestamp at time zone 'UTC' from dual
输出: 29-AUG-17 06.51.14.781998000 PM UTC