PLSQL | ADD_MONTHS函数
PLSQL ADD_MONTHS函数用于返回添加了指定月数的日期。 ADD_MONTHS函数接受两个参数,即初始日期和要添加到其中的月数。
ADD_MONTHS函数返回日期数据类型的值。
date 参数可以是日期时间值或任何可以隐式转换为 DATE 的值。要添加的整数参数可以是整数或任何可以隐式转换为整数的值。无论日期的数据类型如何,返回类型始终为 DATE。如果参数中指定的日期是该月的最后一天,或者如果生成的月份的天数少于 date 的日期部分,则结果是生成月份的最后一天。
句法:
ADD_MONTHS( init_date, add_months )
使用的参数
- init_date –用于指定初始日期。
- add_months –用于指定要添加到初始日期的月数。
返回值:
ADD_MONTHS函数返回日期数据类型的值。
支持的 Oracle/PLSQL 版本:
- 甲骨文 12c
- 甲骨文 11g
- 甲骨文 10g
- 甲骨文 9i
- 甲骨文 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
好处:
要添加的整数参数可以是整数或任何可以隐式转换为整数的值。