日期操作
日期的年月日时分秒操作 |
---|
简单加减 |
内置函数add_months year month |
内置函数numtoyminterval year month |
内置函数numtodsinterval day hour minute second |
numtoyminterval(n,'interval_unit') 间隔 年year 月month
例:
select sysdate,
sysdate + numtoyminterval(3,'year'), 三年后
sysdate + numtoyminterval(-3,'month') 三月前
from dual;
numtodsinterval(n,'interval_unit') 间隔 天day 时hour 分minute 秒second
例:
select sysdate,
sysdate + numtodsinterval(3,'day'), 三天后
sysdate + numtodsinterval(-3,'hour'), 三小时前
sysdate + numtodsinterval(45,'second') 四十五秒后
from dual;
add_months(d,n) 间隔 年year 月month
例:
select sysdate,
add_months(sysdate,3), 三月后
add_months(sysdate,-3), 三月前
add_months(sysdate,12*3), 三年后
sysdate + 30/(24*60*60) 三十秒后
from dual;
select numtoyminterval(months_between(dt1,dt2),'month') MON,
numtodsinterval(dt1-(add_months(dt2,trunc(months_between(dt1,dt2)))),'day') DAY
from (select sysdate dt1,hiredate dt2
from emp);
运行结果:
间隔40年5个月19天9小时44分32秒
两日期直接相减得到的是数据型
last_day某月最后一天