sql – 如何在oracle中减去2个日期以获得小时和分钟的结果

前端之家收集整理的这篇文章主要介绍了sql – 如何在oracle中减去2个日期以获得小时和分钟的结果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想减去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分钟.

猜你在找的MsSQL相关文章