日期:2014-05-17  浏览次数:21056 次

请问ORACLE中,怎样获得两个时间相差的秒数?
比如20080501000000与20080430235959之间相差1秒,怎样在ORACLE中得到?
谢谢

------解决方案--------------------
Oracle计算时间差表达式

有两个日期数据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 * 60)
 

------解决方案--------------------
SQL code
select (To_date('2008-05-01 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 相差秒数 FROM DUAL;

/*
相差秒数
----------
1

1 row selected
*/