函数说明
ADD_MONTHS(date, number)函数是在一个日期上加上指定的月份数,其中,
日期中的日是不变的;
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 848
如果开始日期是某月的最后一天,结果将会进行调整,返回值会对应新的一月
的最后一天;
如果结果月份的天数比开始月份的天数少,
返回值也会向回调整以适应有效日
期。
说明
date:一个日期数值;
number:加上的月份数,如果是要减去的月份数,则为负数。
注意
hive 引擎不支持该函数。
示例
示例1
在当前日期时间上加上3 个月,日期中的日不变。
gbase> SELECT NOW(),ADD_MONTHS(NOW(),3) AS f_Show FROM t;
+---------------------+---------------------+
| NOW() | f_Show |
+---------------------+---------------------+
| 2013-10-12 10:41:28 | 2014-01-12 10:41:28 |
+---------------------+---------------------+
1 row in set
示例2
增加的月份为负数时,相当于提前月份数。
gbase> SELECT NOW(),ADD_MONTHS(NOW(),-3) AS f_Show FROM t;
+---------------------+---------------------+
| NOW() | f_Show |
+---------------------+---------------------+
| 2013-10-12 10:41:40 | 2013-07-12 10:41:40 |
+---------------------+---------------------+
1 row in set
示例3
通过使用to_date 函数,转换为日期型后,再加上指定的月份。
gbase> SELECT ADD_MONTHS(TO_DATE('2012-9-15','YYYY-MM-DD'),3) AS f_Show FROM t;
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 849
+------------+
| f_Show |
+------------+
| 2012-12-15 |
+------------+
1 row in set
示例4
date 为TO_DATE()函数,且TO_DATE()函数的参数为日期时间格式。
gbase> SELECT ADD_MONTHS(TO_DATE('2012-9-15 12:20:31','YYYY-MM-DD HH24:MI:SS'),3) AS
f_Show FROM t;
+---------------------+
| f_Show |
+---------------------+
| 2012-12-15 00:00:00 |
+---------------------+
1 row in set
示例5
8 月31 日是8 月份最后一天,增加3 个月后,是11 月份,11 月共有30 天,因此
结果就是“2012-11-30”。
gbase> SELECT ADD_MONTHS(TO_DATE('2012-8-31','YYYY-MM-DD'),3) AS f_Show FROM t;
+------------+
| f_Show |
+------------+
| 2012-11-30 |
+------------+
1 row in set