oracle日期操作

1.日期可以直接加减数字,还是日期

例如:

select ename,hiredate as zp_date ,
       hiredate - 5 as 减5天,                 --------date 类型对天数的加减可以直接运算
       hiredate -5/24   减5小时,                    -----加减小时,就除以24,类推
       add_months(hiredate, - 5) as 减5个月,--------加减月份需要用函数add_months()
       add_months(hiredate, -5*12) as 减5年   --------一年为12个月。
       from Scott.emp

2.日期之间可以加减,也可乘除。以日为计算单元,小时要除以24,分钟要再除以60

例如:

select  间隔天数 ,    
        间隔天数*24  间隔小时,  ----天数变小时
        间隔天数 * 24 * 60 间隔分钟
from (select MAX(hiredate) - MIN(hiredate) 间隔天数  FROM SCOTT.EMP where ename in ('SMITH','ALLEN','WARD') )x   ;
-----找最大日期和最小日期算间隔天数;

3.要算月份时,可以直接用months_between函数

例如:

select max_hire - min_hire 间隔天数,
       months_between( max_hire, min_hire ) 间隔月份,    
     -----此处要用 ','(逗号) 而不是用  '-'号
       months_between( max_hire, min_hire )/12 间隔年份
        from (select max(hiredate) max_hire, min(hiredate) min_hire from scott.emp where ename in ('SMITH','WARD'))p;

4.比较上一个日期与下一个日期的天数只差

例如:

select deptno,
       ename,
       hiredate,
       next_hd - hiredate as diff
       from(
select deptno,
       ename,
       hiredate,
       lead(hiredate) over(order by hiredate) next_hd,
       lag(hiredate) over (order by hiredate) next_hd2
  from emp
 WHERE deptno = 10)

简单几个例子,实现日期的简单操作。

原文地址:https://www.cnblogs.com/yhoralce/p/6817601.html