我想减去2个日期,用小时数表示小时和分钟的结果.
我有下表,我这样做,但结果并不理想.
有一些细微的变化,我确信这是简单的算术,但我没有做对.
select start_time,end_time,(end_time-start_time)*24 from come_leav;
START_TIME END_TIME (END_TIME-START_TIME)*24 ------------------- ------------------- ------------------------ 21-06-2011 14:00:00 21-06-2011 16:55:00 2.9166667 21-06-2011 07:00:00 21-06-2011 16:50:00 9.8333333 21-06-2011 07:20:00 21-06-2011 16:30:00 9.1666667
我想要结果(end_time-start_time)如下.
16:55- 14:00 = 2.55 16:50-07:00 = 9.5 16:30-7:20 = 9.1 and so on.
我怎样才能做到这一点?
解决方法
sql> edit Wrote file afiedt.buf 1 select start_date 2,end_date 3,(24 * extract(day from (end_date - start_date) day(9) to second)) 4 + extract(hour from (end_date - start_date) day(9) to second) 5 + ((1/100) * extract(minute from (end_date - start_date) day(9) to second)) as "HOUR.MINUTE" 6* from t sql> / START_DATE END_DATE HOUR.MINUTE ------------------- ------------------- ----------- 21-06-2011 14:00:00 21-06-2011 16:55:00 2.55 21-06-2011 07:00:00 21-06-2011 16:50:00 9.5 21-06-2011 07:20:00 21-06-2011 16:30:00 9.1
应该注意的是,对于那些遇到此代码的人来说,小数部分是实际的微小差异,而不是一小时的一部分.因此,.5代表50分钟,而不是30分钟.