加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2021-01-17 23:00:22 所属栏目:MsSql教程 来源:网络整理
导读:我想减去2个日期,用小时数表示小时和分钟的结果. 我有下表,我这样做,但结果并不理想. 有一些细微的变化,我确信这是简单的算术,但我没有做对. select start_time,end_time,(end_time-start_time)*24 from come_leav; START_TIME END_TIME (END_TIME-START_TIME

我想减去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分钟.

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读