# addmonths - 스크립트 및 차트 함수

이 함수는 startdate를 기준으로 n개월 후의 날짜, 또는 n이 음수일 경우는 startdate를 기준으로 n개월 전의 날짜를 반환합니다.

구문:

AddMonths(startdate, n , [ , mode])

반환 데이터 유형: dual

`addmonths()` 함수는 `startdate`에서 정의된 개월 수(`n`)를 더하거나 빼서 결과 날짜를 반환합니다.

`mode` 인수는 해당 월 28일의 `startdate` 값 또는 그 이후의 값에 영향을 미칩니다. `mode` 인수를 1로 설정하면 `addmonths()` 함수는 월말까지의 상대적 기간이 동일한 날짜를 `startdate`로 반환합니다.

`addmonths()` 함수의 다이어그램 예

`addmonths()` 함수의 다이어그램 예

`addmonths()`addmonths() 함수의 다이어그램 예 ![addmonths 함수의 다양한 구성 요소가 함께 결합하여 출력 날짜를 생성하는 방법을 보여 주는 다이어그램 예입니다.](https://help.qlik.com/ko-KR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview.png)

예를 들어, 2월 28일은 월의 마지막 날입니다. `mode`가 1인 `addmonths()` 함수를 사용하여 2개월 후 날짜를 반환하면 이 함수는 4월의 마지막 날짜인 4월 30일을 반환합니다.

`mode=1`인 `addmonths()` 함수의 다이어그램 예

`mode=1`인 `addmonths()` 함수의 다이어그램 예

`mode=1`mode=1인 `addmonths()`addmonths() 함수의 다이어그램 예 ![addmonths 함수의 출력 날짜를 변경하기 위해 'mode' 인수를 변경하는 방법을 보여 주는 다이어그램 예입니다.](https://help.qlik.com/ko-KR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview-n-mode-arguments.png)

인수

| 인수 | 설명 |
| --- | --- |
| startdate | 시작 날짜를 타임스탬프로 지정합니다(예: '2012-10-12'). |
| n | 월 수를 양의 정수 또는 음의 정수로 지정합니다. |
| mode | 해당 월이 월 시작 날짜를 기준으로 추가될지 또는 끝 날짜를 기준으로 추가될지 지정합니다. 기본 모드는 0이며, 월의 시작 날짜를 기준으로 추가됩니다. 월의 끝 날짜를 기준으로 추가되는 경우 모드를 1로 설정합니다. 모드가 1로 설정되고 입력 날짜가 28이상이면 함수가 시작 날짜에서 월의 끝 날짜까지 며칠이 남았는지 확인합니다. 월의 끝 날짜까지 남아 있는 같은 날짜 수가 반환되는 날짜에 설정됩니다. |

## 사용 시기

`addmonths()` 함수는 일반적으로 일정 기간의 주어진 개월 수 전후의 날짜를 찾는 표현식에서 사용됩니다.

예를 들어, `addmonths()` 함수를 사용하여 전화 계약의 종료 날짜를 식별할 수 있습니다.

함수 예

| 예 | 결과 |
| --- | --- |
| `addmonths ('01/29/2003' ,3)` | '04/29/2003'을 반환합니다. |
| `addmonths ('01/29/2003',3,0)` | '04/29/2003'을 반환합니다. |
| `addmonths ('01/29/2003',3,1)` | '04/28/2003'을 반환합니다. |
| `addmonths ('01/29/2003',1,0)` | '02/28/2003'을 반환합니다. |
| `addmonths ('01/29/2003',1,1)` | '02/26/2003'을 반환합니다. |
| `addmonths ('02/28/2003',1,0)` | '03/28/2003'을 반환합니다. |
| `addmonths ('02/28/2003',1,1)` | '03/31/2003'을 반환합니다. |
| `addmonths ('01/29/2003',-3)` | '10/29/2002'을 반환합니다. |

## 국가별 설정

달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 `SET DateFormat` 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다.

앱의 기본 국가별 설정은 Qlik Sense가 설치된 컴퓨터 또는 서버의 국가별 시스템 설정을 기반으로 합니다. 액세스하는 Qlik Sense 서버가 스웨덴으로 설정된 경우 데이터 로드 편집기는 날짜, 시간 및 통화에 대해 스웨덴 지역 설정을 사용합니다. 이러한 국가별 형식 설정은 Qlik Sense 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Sense는 사용 중인 브라우저와 동일한 언어로 표시됩니다.

## 예 1 – 추가 인수 없음

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addmonths.htm)

#### 로드 스크립트 및 결과

개요

데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Transactions`라는 테이블에 로드되는 2020년과 2022년 사이의 트랜잭션 집합이 포함된 데이터 집합.

* `DateFormat` 시스템 변수(MM/DD/YYYY) 서식으로 제공된 날짜 필드.

* 트랜잭션이 발생한 후 2개월 동안의 날짜를 반환하는 필드 `two_months_later` 만들기.

로드 스크립트

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        addmonths(date,2) as two_months_later
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

* `date`

* `two_months_later`

결과 테이블

| date | two\_months\_later |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 02/28/2020 | 04/28/2020 |
| 04/09/2020 | 06/09/2020 |
| 04/16/2020 | 06/16/2020 |
| 05/21/2020 | 07/21/2020 |
| 08/14/2020 | 10/14/2020 |
| 10/07/2020 | 12/07/2020 |
| 12/05/2020 | 02/05/2021 |
| 01/22/2021 | 03/22/2021 |
| 02/03/2021 | 04/03/2021 |
| 03/17/2021 | 05/17/2021 |
| 04/23/2021 | 06/23/2021 |
| 05/04/2021 | 07/04/2021 |
| 06/30/2021 | 08/30/2021 |
| 07/26/2021 | 09/26/2021 |
| 12/27/2021 | 02/27/2022 |
| 02/02/2022 | 04/02/2022 |
| 02/26/2022 | 04/26/2022 |
| 03/07/2022 | 05/07/2022 |
| 03/11/2022 | 05/11/2022 |

'`two_months_later`' 필드는 `addmonths()` 함수를 사용하여 선행 LOAD 문에서 만들어집니다. 제공된 첫 번째 인수는 평가 중인 날짜를 식별합니다. 두 번째 인수는 `startdate`에서 더하거나 뺄 개월 수입니다. 이 경우 값 2가 제공됩니다.

`addmonths()` 함수 다이어그램, 추가 인수가 없는 예

`addmonths()` 함수 다이어그램, 추가 인수가 없는 예

`addmonths()`addmonths() 함수 다이어그램, 추가 인수가 없는 예![로드 스크립트의 트랜잭션 8193이 입력 날짜에서 결과 출력 날짜로 변환되는 방법을 보여 주는 addmonths 함수의 다이어그램입니다.](https://help.qlik.com/ko-KR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-no-add-arg.png)

트랜잭션 8193은 8월 14일에 발생했습니다. 따라서 `addmonths()` 함수는 `two_months_later` 필드에 대해 2020년 10월 14일을 반환합니다.

## 예 2 - 상대적인 월말

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addmonths.htm)

#### 로드 스크립트 및 결과

개요

데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Transactions`라는 테이블에 로드되는 2022년 월말 트랜잭션 집합이 포함된 데이터 집합.

* `DateFormat` 시스템 변수(MM/DD/YYYY) 서식으로 제공된 날짜 필드.

* 트랜잭션이 발생하기 2개월 전의 상대적인 월말 날짜를 반환하는 필드 `relative_two_months_prior` 만들기.

로드 스크립트

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        addmonths(date,-2,1) as relative_two_months_prior
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/28/2022',37.23
8189,'01/31/2022',57.54
8190,'02/28/2022',17.17
8191,'04/29/2022',88.27
8192,'04/30/2022',57.42
8193,'05/31/2022',53.80
8194,'08/14/2022',82.06
8195,'10/07/2022',40.39
];
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

* `date`

* `relative_two_months_prior`

결과 테이블

| date | relative\_two\_months\_prior |
| --- | --- |
| 01/28/2022 | 11/27/2021 |
| 01/31/2022 | 11/30/2021 |
| 02/28/2022 | 12/31/2021 |
| 04/29/2022 | 02/27/2022 |
| 04/30/2022 | 02/28/2022 |
| 05/31/2022 | 03/31/2022 |
| 08/14/2022 | 06/14/2022 |
| 10/07/2022 | 08/07/2022 |

`relative_two_months_prior` 필드는 `addmonths()` 함수를 사용하여 선행 LOAD 문에서 만들어집니다. 제공된 첫 번째 인수는 평가 중인 날짜를 식별합니다. 두 번째 인수는 `startdate`에서 더하거나 뺄 개월 수입니다. 이 경우 값 -2가 제공됩니다. 마지막 인수는 값이 1인 모드로, 함수가 28보다 크거나 같은 모든 날짜에 대해 상대적인 월말 날짜를 계산하도록 합니다.

`addmonths()` 함수 다이어그램(예: `  n=-2 `)

`addmonths()` 함수 다이어그램(예: `  n=-2 `)

`addmonths()`addmonths() 함수 다이어그램(예: `  n=-2 ` n=-2)![로드 스크립트의 트랜잭션 8191이 입력 날짜에서 결과 출력 날짜로 변환되는 방법을 보여 주는 addmonths 함수의 다이어그램입니다.](https://help.qlik.com/ko-KR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-rel-mth-end.png)

트랜잭션 8191은 2022년 4월 29일에 발생합니다. 초기에는 2개월 전의 월을 2월로 설정합니다. 그런 다음 함수의 세 번째 인수에서 모드가 1로 설정되고 일 값이 27일 이후이므로 이 함수는 상대적인 월말 값을 계산합니다. 이 함수는 29일이 4월의 두 번째 마지막 날임을 식별하므로 2월의 두 번째 마지막 날인 27일을 반환합니다.

## 예 3 – 차트 개체 예

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addmonths.htm)

#### 로드 스크립트 및 차트 표현식

개요

데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.

이 로드 스크립트에는 첫 번째 예와 동일한 데이터 집합 및 시나리오가 포함되어 있습니다.

그러나 이 예에서는 변경되지 않은 데이터 집합이 응용 프로그램에 로드됩니다. 트랜잭션이 발생한 후 2개월 동안의 날짜를 반환하는 계산은 차트 개체에서 측정값으로 만들어집니다.

로드 스크립트

```
SET DateFormat='MM/DD/YYYY';

Transactions:
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다. `date`.

다음 측정값을 만듭니다.

`=addmonths(date,2)`

결과 테이블

| date | =addmonths(date,2) |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 02/28/2020 | 04/28/2020 |
| 04/09/2020 | 06/09/2020 |
| 04/16/2020 | 06/16/2020 |
| 05/21/2020 | 07/21/2020 |
| 08/14/2020 | 10/14/2020 |
| 10/07/2020 | 12/07/2020 |
| 12/05/2020 | 02/05/2021 |
| 01/22/2021 | 03/22/2021 |
| 02/03/2021 | 04/03/2021 |
| 03/17/2021 | 05/17/2021 |
| 04/23/2021 | 06/23/2021 |
| 05/04/2021 | 07/04/2021 |
| 06/30/2021 | 08/30/2021 |
| 07/26/2021 | 09/26/2021 |
| 12/27/2021 | 02/27/2022 |
| 02/02/2022 | 04/02/2022 |
| 02/26/2022 | 04/26/2022 |
| 03/07/2022 | 05/07/2022 |
| 03/11/2022 | 05/11/2022 |

`two_months_later` 측정값은 `addmonths()` 함수를 사용하여 차트 개체에 만들어집니다. 제공된 첫 번째 인수는 평가 중인 날짜를 식별합니다. 두 번째 인수는 `startdate`에서 더하거나 뺄 개월 수입니다. 이 경우 값 2가 제공됩니다.

`addmonths()` 함수의 다이어그램, 차트 개체 예

`addmonths()` 함수의 다이어그램, 차트 개체 예

`addmonths()`addmonths() 함수의 다이어그램, 차트 개체 예![로드 스크립트의 트랜잭션 8193이 입력 날짜에서 결과 출력 날짜로 변환되는 방법을 보여 주는 addmonths 함수의 다이어그램입니다.](https://help.qlik.com/ko-KR/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-chart-object.png)

트랜잭션 8193은 8월 14일에 발생했습니다. 따라서 `addmonths()` 함수는 `two_months_later` 필드에 대해 2020년 10월 14일을 반환합니다.

## 예 4 – 시나리오

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addmonths.htm)

#### 로드 스크립트 및 차트 표현식

개요

데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* Mobile\_Plans라는 테이블에 로드되는 데이터 집합.

* 계약 ID, 시작 날짜, 계약 기간 및 월 사용료가 포함된 정보.

최종 사용자는 계약 ID별로 각 전화 계약의 종료 날짜를 표시하는 차트 개체를 원합니다.

로드 스크립트

```
Mobile_Plans:
Load
*
Inline 
[
contract_id,start_date,contract_length,monthly_fee
8188,'01/13/2020',18,37.23
8189,'02/26/2020',24,17.17
8190,'03/27/2020',36,88.27
8191,'04/16/2020',24,57.42
8192,'05/21/2020',24,53.80
8193,'08/14/2020',12,82.06
8194,'10/07/2020',18,40.39
8195,'12/05/2020',12,87.21
8196,'01/22/2021',12,95.93
8197,'02/03/2021',18,45.89
8198,'03/17/2021',24,36.23
8199,'04/23/2021',24,25.66
8200,'05/04/2021',12,82.77
8201,'06/30/2021',12,69.98
8202,'07/26/2021',12,76.11
8203,'12/27/2021',36,25.12
8204,'06/06/2022',24,46.23
8205,'07/18/2022',12,84.21
8206,'11/14/2022',12,96.24
8207,'12/12/2022',18,67.67
];
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 차원으로 추가합니다.

* contract\_id

* start\_date

* contract\_length

다음 측정값을 만들어 각 계약의 종료 날짜를 계산합니다.

=addmonths(start\_date,contract\_length, 0)

결과 테이블

| contract\_id | start\_date | contract\_length | =addmonths(start\_date,contract\_length,0) |
| --- | --- | --- | --- |
| 8188 | 01/13/2020 | 18 | 07/13/2021 |
| 8189 | 02/26/2020 | 24 | 02/26/2022 |
| 8190 | 03/27/2020 | 36 | 03/27/2023 |
| 8191 | 04/16/2020 | 24 | 04/16/2022 |
| 8192 | 05/21/2020 | 24 | 05/21/2022 |
| 8193 | 08/14/2020 | 12 | 08/14/2021 |
| 8194 | 10/07/2020 | 18 | 04/07/2022 |
| 8195 | 12/05/2020 | 12 | 12/05/2021 |
| 8196 | 01/22/2021 | 12 | 01/22/2022 |
| 8197 | 02/03/2021 | 18 | 08/03/2022 |
| 8198 | 03/17/2021 | 24 | 03/17/2023 |
| 8199 | 04/23/2021 | 24 | 04/23/2023 |
| 8200 | 05/04/2021 | 12 | 05/04/2022 |
| 8201 | 06/30/2021 | 12 | 06/30/2022 |
| 8202 | 07/26/2021 | 12 | 07/26/2022 |
| 8203 | 12/27/2021 | 36 | 12/27/2024 |
| 8204 | 06/06/2022 | 24 | 06/06/2024 |
| 8205 | 07/18/2022 | 12 | 07/18/2023 |
| 8206 | 11/14/2022 | 12 | 11/14/2023 |
| 8207 | 12/12/2022 | 18 | 06/12/2024 |