

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# ADD\$1MONTHS 函數
<a name="r_ADD_MONTHS"></a>

ADD\$1MONTHS 會將指定幾個月新增至日期或時間戳記值或運算式。[DATEADD](r_DATEADD_function.md) 函數提供類似功能。

## 語法
<a name="r_ADD_MONTHS-synopsis"></a>

```
ADD_MONTHS( {date | timestamp}, integer)
```

## 引數
<a name="r_ADD_MONTHS-arguments"></a>

 *date* \$1 *timestamp*   
`DATE` 或 `TIMESTAMP` 資料類型的欄，或是隱含評估為 `DATE` 或 `TIMESTAMP` 類型的運算式。如果日期是某個月的最後一天，或者如果產生的月份是較短的月份，則函數會在結果中傳回該月的最後一天。若是其他日期，結果會包含與日期表達式一樣的相同天數。

 *integer*   
`INTEGER` 資料類型的值。使用負數可減少日期中的月份。

## 傳回類型
<a name="r_ADD_MONTHS-return-type"></a>

TIMESTAMP

## 範例
<a name="r_ADD_MONTHS-example"></a>

以下查詢會使用 TRUNC 函數中的 ADD\$1MONTHS 函數。TRUNC 函數會從 ADD\$1MONTHS 結果移除某日時間。ADD\$1MONTHS 函數會從 CALDATE 欄中新增 12 個月至每個值。在 CALDATE 欄中的值是日期。

```
select distinct trunc(add_months(caldate, 12)) as calplus12,
trunc(caldate) as cal
from date
order by 1 asc;

 calplus12  |    cal
------------+------------
 2009-01-01 | 2008-01-01
 2009-01-02 | 2008-01-02
 2009-01-03 | 2008-01-03
...
(365 rows)
```

*下列範例會使用 ADD\$1MONTHS 函數，將 1 個月加到 timestamp*。

```
select add_months('2008-01-01 05:07:30', 1); 

add_months
---------------------
2008-02-01 05:07:30
```

下列範例示範當 ADD\$1MONTHS 函數對含有月份的日期進行操作的行為，而這些月份的天數皆不同時。此範例顯示函數如何處理在 3 月 31 日增加 1 個月，以及在 4 月 30 日增加 1 個月。4 月有 30 天，因此在 3 月 31 日的基礎上加上 1 個月就得到 4 月 30 日。5 月有 31 天，因此在 4 月 30 日的基礎上加上 1 個月就得到 5 月 31 日。

```
select add_months('2008-03-31',1);

add_months
---------------------
2008-04-30 00:00:00

select add_months('2008-04-30',1); 

add_months
---------------------
2008-05-31 00:00:00
```