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)
简单几个例子,实现日期的简单操作。