Oracle计算时间差函数
两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差
(分别以天,小时,分钟,秒,毫秒):
天:
ROUND(TO_NUMBER(END_DATE - START_DATE))
小时:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)
分钟:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60)
秒:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60)
毫秒:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 1000)
select
ROUND(
TO_NUMBER(
to_date('2017/1/24 6:56:45','yyyy-mm-dd hh24:mi:ss') - to_date('2017/1/24 4:56:45','yyyy-mm-dd hh24:mi:ss')) * 24
)
from dual;
一小时前
SELECT '当前时间' TITLE, TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss') TIME
FROM DUAL --当前时间
UNION ALL
SELECT '前一天前一小时前一分钟前一秒' TITLE,
TO_CHAR(SYSDATE - 1 - 1 / 24 - 1 / 24 / 60 - 1 / 24 / 60 / 60,
'yyyy-mm-dd hh24:mi:ss') TIME
FROM DUAL
UNION ALL
SELECT '一分钟前' TITLE,
TO_CHAR(SYSDATE - 1 / 24 / 60, 'yyyy-mm-dd hh24:mi:ss')
FROM DUAL