乐趣区

SQL-常用函数第五集-日期函数

看完这章你会学习以下:

  • 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

退出移动版