日期函数
Oracle中的日期型数据实际含有两个值:日期和时间。
日期:
1)日期加上或减去一个数字仍为日期;
2)两个日期相减返回日期之间相差的天数;
3)日期之间不允许做加法运算,无意义;
4)可以用数字除24来向日期中加上或减去天数。
1. MONTHS_BETWEEN
两个日期相差的月数
输入:
months_between(sysdate,hire_date)
输出:
一个数字
2. ADD_MONTHS
向指定日期中加上若干月数
(1)比系统日期多两个月的日期
输入:
add_months(sysdate,2)
输出:
(2)比系统日期少三个月的日期
输入:
add_months(sysdate,-3)
输出:
3. NEXT_DAY
指定日期的下一个星期几对应的日期
以系统日期为起始点,最近的星期日的日期
输入:
next_day(sysdate,'星期日')
输出:
4. LAST_DAY
本月的最后一天
输入:
last_day(sysdate) -1
输出:
系统日期所在月的最后一天的前一天
例:查询每个月倒数第2天入职的员工的信息。
select last_name
from employees
where hire_date = last_day(hire_date) -1
5. ROUND
日期的四舍五入
(1)按照月份四舍五入
ROUND(sysdate,'MONTH')
或
ROUND(sysdate,'mm')
(2)按照年份四舍五入
ROUND(sysdate,'YEAR')
6. TRUNC
日期截断
(1)按照月份截断
TRUNC(sysdate,'MONTH')
(2)按照年份截断
TRUNC(sysdate,'YEAR')
(3)按照小时截断
TRUNC(sysdate,'HH')