oracle 关于对时间操作的汇总

时间:2021-04-01 16:23:28

-- 对时间的操作

对当前日期增加一个小时:
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)