分享

Oracle中两个date相减

 沙门空海 2018-05-29

技术学习视频教程网盘资源整理 https://pan.baidu.com/s/13dbR69NLIEyP1tQyRTl4xw

两个时间相减默认的是天数

oracle 两个时间相减默认的是天数*24 为相差的小时数

oracle 两个时间相减默认的是天数*24*60 为相差的分钟数

oracle 两个时间相减默认的是天数*24*60*60 为相差的秒数

如下:

SQL>select sysdate from dual;

 2008-2-20 14:32:35

SQL> select (sysdate-to_date('2008-02-17 23:00:00','yyyy-mm-dd hh24:mi:ss')) from dual;

SQL> select (sysdate-to_date('2008-02-17 23:00:00','yyyy-mm-dd hh24:mi:ss'))*24 from dual;

SQL> select (sysdate-to_date('2008-02-17 23:00:00','yyyy-mm-dd hh24:mi:ss'))*24*60*60 from dual;

1、对于2个DATE类型直接相减,就可以得到天数的值,如:

select to_date('2006-05-11 12:30:01','YYYY-MM-DD HH24:MI:SS')   -to_date('2006-05-11 12:30:00','YYYY-MM-DD HH24:MI:SS') T from dual;

结果:
          T
-------------------
.000011574

这个得到的天数很容易换算成秒,如 0.000011574*24*60*60=1s。

2、在ORACLE里日期类型是可以直接进行比较的。举个例子

SQL> SELECT to_date('2006-12-05', 'yyyy-mm-dd') - to_date('2006-12-07', 'yyyy-mm-dd') FROM dual ;

这说明2006-12-05要比7号早2天。

SQL> SELECT to_date('2006-12-07 14:23:24' , 'yyyy-mm-dd hh24:mi:ss') + 1/24 FROM dual ;

这是说明在某一时间上加一小时,1是代表一天,1/24就是一小时,同理1/24/60就是一分钟
select trunc(sysdate) - trunc(to_date('2006-05-28 10:20','YYYY-MM-DD HH24:MI')) from dual

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多