oracle 关于对时间操作的汇总

-- 对时间的操作

对当前日期增加一个小时:
SQL> select sysdate, sysdate+numtodsinterval(1,’hour’) from dual ;


对当前日期增加50分种
SQL> select sysdate, sysdate+numtodsinterval(50,’minute’) from dual ;


对当前日期增加45秒
SQL> select sysdate, sysdate+numtodsinterval(45,’second’) from dual ;


对当前日期增加3天
SQL> select sysdate, sysdate+3 from dual ;


对当前日期增加4个月
SQL> select sysdate, add_months(sysdate,4) from dual ;

当前日期增加2年
SQL> select sysdate, add_months(sysdate,12*2) from dual ;

求时间差: 

月(年可以用求出来的月进行转换,即用月数除2)

months_between(sysdate,'18-8月-08') 当前时间距2008-8-18共多少个月

select  floor(months_between(sysdate,'18-8月-08')) mon from dual;

天: 

ROUND(TO_NUMBER(END_DATE - START_DATE)) 

小时: 

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24) 

分钟: 

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60) 

秒: 

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60) 

毫秒: 

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 1000)

原文地址:https://www.cnblogs.com/wenbiquan/p/9041652.html