看完这章你会学习以下:
- Months_BETWEEN 两个日期的顺序
- NEXT_DAY 返回日期的注意事项
--ADD_MONTHS(d,n), 在某一个日期 d 上, 加上指定的月数 n, 返回计算后的新日期。d 表示日期,n 表示要加的月数(n 可以为负值)SELECT ADD_MONTHS(SYSDATE, 1),
ADD_MONTHS(DATE'2019-08-30', -6),
ADD_MONTHS(DATE'2020-08-30', -6)
FROM DUAL;
--LAST_DAY(d), 返回指定日期当月的最后一天
SELECT LAST_DAY(SYSDATE),LAST_DAY(DATE'2019-08-30') FROM DUAL;
-- MONTHS_BETWEEN (date1, date2), 用于计算 date1 和 date2 之间有几个月
SELECT MONTHS_BETWEEN(TO_DATE('2014-3-21', 'yyyy-mm-dd'), TO_DATE('2014-1-10', 'yyyy-mm-dd')) mon_diff FROM DUAL;
-- 注意:日期可以加减数字, 表示加减多少天; 日期减去日期表示相隔多少天; 日期不能相加
SELECT DATE'2019-08-30'+6,
DATE'2019-08-30'-6,
DATE'2019-08-30'-DATE'2019-08-16'
FROM DUAL;
注意:Months_Between 的 第一个日期要大于第二个日期 ,否则 返回负数。
Next_day 注意:如果今天是星期六, 如果要查询下一个星期六, 则返回下周的星期六; 如果要查询下一个星期日, 则返回值是这个周的星期日。
--NEXT_DAY(d,date2[Mon,Tues,... ..]), 返回指定日期的接下 (指定日期) 日子
SELECT NEXT_DAY(DATE'2019-08-30','friday') FROM DUAL;
SELECT NEXT_DAY(SYSDATE,1) FROM DUAL;
Date 强制转化注意 :日期只能相减,返回两者的天数。
功能相当于 Months_Between,但不能相加!
-- 注意:日期可以加减数字, 表示加减多少天; 日期减去日期表示相隔多少天; 日期不能相加
SELECT DATE'2019-08-30'+6,
DATE'2019-08-30'-6,
DATE'2019-08-30'-DATE'2019-08-16'
---- DATE'2019-08-30'+DATE'2019-08-16' 不允许日期 + 日期
FROM DUAL;
发布于 05-30