Oracle中计算时间差是经常用到的。可以使用“日期1-日期2”并加以运算,来获得你要想的时间差:天、小时、分钟或者秒。
例如:
select
TO_DATE('2012-02-20 17:45:04','yyyy-mm-dd hh24:mi:ss')-TO_DATE('2012-02-19 08:34:04','yyyy-mm-dd hh24:mi:ss') as Day
from dual;
结果:
这里的TO_DATE很有用,它决定你的时间存储格式。
那么如果要获取相应的时间单位,下面:
1、以天为单位
round(to_number(end-date-start_date))
例如:
select
round(to_number(TO_DATE('2012-02-20 17:45:04','yyyy-mm-dd hh24:mi:ss')-TO_DATE('2012-02-19 08:34:04','yyyy-mm-dd hh24:mi:ss'))) as Day
from dual;
结果:
2、以小时为单位
round(to_number(end-date-start_date)*24)
例如:
select
round(to_number(TO_DATE('2012-02-20 17:45:04','yyyy-mm-dd hh24:mi:ss')-TO_DATE('2012-02-19 08:34:04','yyyy-mm-dd hh24:mi:ss'))*24) as Hour
from dual;
结果:
3、以分钟为单位
round(to_number(end-date-start_date)*1440)
例如:
select
round(to_number(TO_DATE('2012-02-20 17:45:04','yyyy-mm-dd hh24:mi:ss')-TO_DATE('2012-02-19 08:34:04','yyyy-mm-dd hh24:mi:ss'))*1440) as Minite
from dual;
结果: