1、某个日期增加或减少某几天
SELECT SYSDATE+1 FROM dual;------当前时间加1天
SELECT SYSDATE -1 FROM dual;------当前时间减1天
注意:必须是日期型的日期,才可以直接加减天数
2、某个日期增加或减少某几月
SELECT ADD_MONTHS(SYSDATE, 7) A FROM dual;------2018年2月加7月
SELECT ADD_MONTHS(SYSDATE,-7) A FROM dual;------2018年2月减7月
SELECT ADD_MONTHS(SYSDATE,7.9) A FROM dual;------2018年2月加7.9月
函数:ADD_MONTHS(D,N)
说明:返回日期时间D加N月后对应的日期时间
N为正时则表示D之后;N为负时则表示D之前;N为小数时则会自动先删除小数部分,而用整数部分。
3、某个日期增加某几年
SELECT ADD_MONTHS(SYSDATE,12*2) FROM dual ;------2018年2月加24月即增加2年
4、两个时间相减获取时间差
SELECT CEIL((TO_DATE('2018-02-01 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - TO_DATE('2018-02-01 01:00:00' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 ) FROM dual;--00:00:00减01:00:00
说明:红色部分 24----获取两时间差的小时数;
24*60----获取两时间差的分钟数数;
24*60*60----获取两时间差的秒数;
24*60*60*1000----获取两时间差的毫秒数。
5、两个日期相减获取天数差
SELECT TO_DATE('2018-02-01','yyyy-mm-dd')-TO_DATE('2018-02-28','yyyy-mm-dd') FROM dual;--2018年2月1日减2018年2月28日
6、两个日期相减获取月数差
SELECT MONTHS_BETWEEN(SYSDATE,TO_DATE('2018-12-31','YYYY-MM-dd')) A FROM dual---2018年2月减2018年12月
函数:MONTHS_BETWEEN(D1,D2)
说明:返回日期D1和D2之间相差的月数。
如果D1小于D2,则返回负数;如果D1和于D2的天数相同或都是月底,则返回整数;
7、某个日期的月份中的最后一天即月底
SELECT LAST_DAY(SYSDATE) FROM dual;--2018年2月的最后一天