格式:
YYYY-MM-DD HH24:MI:SS.FF
yyyy/mm/dd hh24:mi:ss.ff
YYYY-MM-DD HH24:MI:SS.FF3 /6 /9
1.天數相加
select SYSDATE+10 from dual; --天數相加
select systimestamp+10 from dual;--天數相加
2.獲取時間戳 ('1970-1-1 8' 到某時間的毫秒數 1天=1*24*60*60*1000=86400000 毫秒)
select
to_char(
(SYSDATE - TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24')) * 86400000 + TO_NUMBER(TO_CHAR(SYSTIMESTAMP(3), 'FF'))
) from dual;
時間戳轉換爲某種格式時間
SELECT TO_CHAR(1575961555442 / (1000 * 60 * 60 * 24) +
TO_DATE('1970-01-01 08:00:00', 'YYYY/MM/DD HH:MI:SS'), 'YYYY/MM/DD HH24:MI:SS')
FROM DUAL
3.獲取毫秒數及更多
select TO_CHAR(SYSTIMESTAMP(3), 'FF') from dual; --獲取3位 或 TO_CHAR(SYSTIMESTAMP(9), 'FF3')
select TO_CHAR(SYSTIMESTAMP(6), 'FF') from dual;--獲取6位 或 TO_CHAR(SYSTIMESTAMP(6), 'FF6')
select TO_NUMBER(TO_CHAR(SYSTIMESTAMP(3), 'FF')) from dual;
4.判斷時間秒數差
select abs(ceil((sysdate-to_date(to_char(nvl(us_online_date,to_date('2000-01-01','yyyy-mm-dd')),'yyyy/mm/dd hh24:mi:ss'),'yyyy/mm/dd hh24:mi:ss'))*24*60*60))< 120 from t
--select abs(ceil((sysdate-us_online_date)*24*60*60))< 120 from t
-- ceil(n) 取大於等於數值n的最小整數;
--abs(n) 取絕對值
5.相互轉換
1. to_date('2000-01-01','yyyy-mm-dd')
2. to_char(sysdate,'yyyy-mm-dd')
3. TO_CHAR(SYSTIMESTAMP(3), 'FF')
4. TO_NUMBER(TO_CHAR(SYSTIMESTAMP(3), 'FF'))
5. to_timestamp('2018-01-24 12:13:56.123000','yyyy-mm-dd hh24:mi:ss:ff6')
6. to_timestamp(to_char(systimestamp,'YYYY-MM-DD HH24:MI:SS:FF3')||(100+11),'yyyy-mm-dd hh24:mi:ss:ff6')