--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;