日期函数
1.sysdate 当前系统时间
日期加减数字=日期加减天数
日期-日期=相差的天数
2.add_months(日期,数) 日期加减月数
数会自动截断取整
select add_months(sysdate,1),
add_months(sysdate,-1),
add_months(sysdate,12),
add_months(sysdate,1.9)
from dual
--查询三个月前距今多少天
select sysdate-add_months(sysdate,-3)
from dual
--查询三个月后是几月
select to_char(add_months(sysdate,3),'mm')
from dual
--查询一年后的今天是星期几
select to_char(add_months(sysdate,12),'dy')
from dual
3.months_between(日期1,日期2) 日期之间相差的月数
在oracle中默认一个月有31天
1天=1/31月
select months_between(date'2021-7-1',date'2021-5-1') A,
months_between(date'2021-5-1',date'2021-7-1') B,
months_between(date'2021-7-15',date'2021-5-1') C,
months_between(sysdate,date'2021-5-1') D
from dual
--查询2008-8-8距今几个月,四舍五入保留两位小数
select round(months_between(sysdate,date'2008-8-8'),2)
from dual
--查询2012-12-21距今多少年,四舍五入保留两位小数
select round(months_between(sysdate,date'2012-12-21')/12,2)
from dual
--查询2008-8-8距今几年零几个月零几天
--小数*31得天
select trunc(months_between(sysdate, date '2008-8-8') / 12) || '年' ||
trunc(months_between(sysdate, date '2008-8-8') -
(trunc(months_between(sysdate, date '2008-8-8') / 12) * 12)) || '月' ||