Oracle 日期减法

--Oracle中两个日期计算相差的天数
select TO_NUMBER(TO_DATE('2018-6-5','yyyy-mm-dd hh24:mi:ss')
     - TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss'))
AS 相差天数
from dual;

 

--Oracle中两个日期计算相差的小时数
select TO_NUMBER(
           (TO_DATE('2018-6-5','yyyy-mm-dd hh24:mi:ss')
          - TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss')
            )*24
                )
AS 相差小时数
from dual;

 

--Oracle中两个日期计算相差的分钟数
select TO_NUMBER(
          (TO_DATE('2018-6-5','yyyy-mm-dd hh24:mi:ss')
         - TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss')
           )*24*60
                )
AS 相差分钟数
from dual;

 

--Oracle中两个日期相差秒数
select TO_NUMBER(
         (TO_DATE('2018-6-5','yyyy-mm-dd hh24:mi:ss')
        - TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss')
          )*24*60*60
                 )
AS 相差秒数
from dual;

 

--oracle两个日期的相差月数
/*月份都是最后一天,A日期 > B日期 ,返回整数*/
select months_between(
           TO_DATE('2018-6-30','yyyy-mm-dd hh24:mi:ss'),
           TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss')
                     )
As 相差月份1 from dual;

 

/*月份都是最后一天,B日期 > A日期 ,返回负数*/
select months_between(
          TO_DATE('2018-4-30','yyyy-mm-dd hh24:mi:ss'),
          TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss'))
As 相差月份2
from dual;

 

/*月份天数不一样,A日期 > B日期 ,返回带小数的数字*/
select months_between(
          TO_DATE('2018-6-25','yyyy-mm-dd hh24:mi:ss'),
          TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss'))
As 相差月份3
from dual;

--oracle两个日期的相差年份
select ((months_between
           (TO_DATE('2018-5-31','yyyy-mm-dd hh24:mi:ss'),
            TO_DATE('2016-5-31','yyyy-mm-dd hh24:mi:ss'))
          )/12
        )
As 相差年份 from dual;

你可能感兴趣的:(Oracle,自学知识点总结)