最近做医院的系统,有很多数据要求求出一个时间段来,比如手术执行多长时间,患者住了多长时间的院等。每次都是BAIDU,后来发现在ORACLE中,两个日期相减的差是以天计算的。如:
select to_date('2012-10-02 12:30:00','yyyy-mm-dd hh:mi:ss')-to_date('2012-10-01 11:30:00','yyyy-mm-dd hh:mi:ss') from dual;
结果为:1.04166666666667
得到这个逻辑以后就可以按要求解析了。
如上述两个时间分别为手术完成时间、开始时间,则可求出手术执行时间(小时)
select (to_date('2012-10-02 12:30:00','yyyy-mm-dd hh:mi:ss')-to_date('2012-10-01 11:30:00','yyyy-mm-dd hh:mi:ss'))*24 from dual;
同理,如果需要天数,小时、分、秒等,可在此基础上进行计算即可。
留此备忘!