📜  PLSQL | ADD_MONTHS函数

📅  最后修改于: 2022-05-13 01:55:50.244000             🧑  作者: Mango

PLSQL | ADD_MONTHS函数

PLSQL ADD_MONTHS函数用于返回添加了指定月数的日期。 ADD_MONTHS函数接受两个参数,即初始日期和要添加到其中的月数。
ADD_MONTHS函数返回日期数据类型的值。

date 参数可以是日期时间值或任何可以隐式转换为 DATE 的值。要添加的整数参数可以是整数或任何可以隐式转换为整数的值。无论日期的数据类型如何,返回类型始终为 DATE。如果参数中指定的日期是该月的最后一天,或者如果生成的月份的天数少于 date 的日期部分,则结果是生成月份的最后一天。

句法:

ADD_MONTHS( init_date, add_months )

使用的参数

  1. init_date –用于指定初始日期。
  2. add_months –用于指定要添加到初始日期的月数。

返回值:
ADD_MONTHS函数返回日期数据类型的值。

支持的 Oracle/PLSQL 版本:

  1. 甲骨文 12c
  2. 甲骨文 11g
  3. 甲骨文 10g
  4. 甲骨文 9i
  5. 甲骨文 8i

示例 1:在 ADD_MONTHS函数的 add_months 参数中使用正数值。

DECLARE 
   Test_Date date := '01-Aug-18';
   Add_Month number := 3;
   
BEGIN 
   dbms_output.put_line(ADD_MONTHS(Test_Date, Add_Month)); 
   
END; 

输出:

01.12.18 

示例 2:在 ADD_MONTHS函数的 add_months 参数中使用负数值。

DECLARE 
   Test_Date date := '01-Aug-18';
   Add_Month number := -3;
   
BEGIN 
   dbms_output.put_line(ADD_MONTHS(Test_Date, Add_Month)); 
   
END; 

输出:

01.05.03 

示例 3:在 ADD_MONTHS函数的 add_months 参数中使用负数值。

DECLARE 
   Test_Date date := '31-Aug-18';
   Add_Month number := -4;
   
BEGIN 
   dbms_output.put_line(ADD_MONTHS(Test_Date, Add_Month)); 
   
END; 

输出:

30.04.18 

由于四月有 30 天,因此 ADD_MONTHS 返回 30.04.18 作为最后一天。

示例 4:在 ADD_MONTHS函数的 add_months 参数中使用正数值。

DECLARE 
   Test_Date date := '31-Aug-18';
   Add_Month number := 3;
   
BEGIN 
   dbms_output.put_line(ADD_MONTHS(Test_Date, Add_Month)); 
   
END; 

输出:

30.11.18 

由于 11 月有 30 天,因此 ADD_MONTHS 返回 30.11.18 作为最后一天。

示例 5:使用带有 ADD_MONTHS函数的选择查询。

SELECT
  ADD_MONTHS( DATE '2016-02-29', 1 )
FROM
  dual; 

输出:

31-MAR-16 

好处:
要添加的整数参数可以是整数或任何可以隐式转换为整数的值。