【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的第一个日期要大于第二个日期,否则返回负数

【SQL 常用函数】第五集 日期函数_第1张图片

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;

【SQL 常用函数】第五集 日期函数_第2张图片

发布于 05-30

你可能感兴趣的:(oracle)