# addmonths 스크립트 및 차트 함수

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

구문:

AddMonths(startdate, n , [ , mode])

반환 데이터 유형: 이중

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

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

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

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

`addmonths()`addmonths() 함수의 다이어그램 예 ![addmonths 함수의 다양한 구성 요소가 함께 결합하여 출력 날짜를 생성하는 방법을 보여 주는 다이어그램 예입니다.](https://help.qlik.com/ko-KR/cloud-services/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/cloud-services/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()` 함수를 사용하여 전화 계약의 종료 날짜를 식별할 수 있습니다.

함수 예

| 예제 | 결과 |
| --- | --- |
| `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'을 반환합니다. |

## 국가별 설정

달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다: MM/DD/YYYY. 날짜 형식은 데이터 로드 스크립트의 `SET DateFormat` 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다. 자세한 내용은 [응용 프로그램 및 스크립트에 대한 지역 설정 수정](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm)를 참조하십시오.

응용 프로그램의 기본 지역 설정은 사용자 프로필을 기반으로 합니다. 이러한 국가별 형식 설정은 Qlik Cloud 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Cloud는 사용 중인 브라우저와 동일한 언어로 표시됩니다.

응용 프로그램 작성자인 경우 만든 응용 프로그램의 기본 지역을 설정할 수 있습니다. 자세한 내용은 [Qlik Cloud 분석에서 앱 및 스크립트 만들기를 위한 기본 지역 설정 지정](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting)을 참조하십시오.

## 예 1 – 추가 인수 없음

[](https://help.qlik.com/en-US/cloud-services/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`

결과 테이블

| 날짜 | 두 달 후 |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 2020년 2월 28일 | 04/28/2020 |
| 2020/04/09 | 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 | 2022.02.27 |
| 02/02/2022 | 04/02/2022 |
| 2022년 2월 26일 | 04/26/2022 |
| 2022년 03월 07일 | 2022년 5월 7일 |
| 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/cloud-services/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/cloud-services/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`

결과 테이블

| 날짜 | 두 달 전 상대적 |
| --- | --- |
| 01/28/2022 | 11/27/2021 |
| 01/31/2022 | 11/30/2021 |
| 02/28/2022 | 12/31/2021 |
| 04/29/2022 | 2022.02.27 |
| 04/30/2022 | 02/28/2022 |
| 05/31/2022 | 03/31/2022 |
| 08/14/2022 | 06/14/2022 |
| 2022년 10월 07일 | 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/cloud-services/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/cloud-services/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)`

결과 테이블

| 날짜 | =addmonths(date,2) |
| --- | --- |
| 01/10/2020 | 2020년 3월 10일 |
| 2020년 2월 28일 | 2020년 4월 28일 |
| 2020/04/09 | 2020/06/09 |
| 04/16/2020 | 2020/06/16 |
| 05/21/2020 | 2020/07/21 |
| 08/14/2020 | 2020/10/14 |
| 10/07/2020 | 2020/12/07 |
| 12/05/2020 | 2021/02/05 |
| 01/22/2021 | 2021/03/22 |
| 02/03/2021 | 2021/04/03 |
| 03/17/2021 | 2021/05/17 |
| 04/23/2021 | 2021/06/23 |
| 05/04/2021 | 2021/07/04 |
| 06/30/2021 | 2021/08/30 |
| 07/26/2021 | 2021/09/26 |
| 12/27/2021 | 2022.02.27 |
| 02/02/2022 | 2022/04/02 |
| 2022년 2월 26일 | 2022/04/26 |
| 2022년 03월 07일 | 2022년 5월 7일 |
| 03/11/2022 | 05/11/2022 |

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

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

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

`addmonths()`addmonths() 함수의 다이어그램, 차트 개체 예 ![로드 스크립트의 트랜잭션 8193이 입력 날짜에서 결과 출력 날짜로 변환되는 방법을 보여 주는 addmonths 함수의 다이어그램입니다.](https://help.qlik.com/ko-KR/cloud-services/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/cloud-services/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)

결과 테이블

| 계약\_ID | start\_date | 계약\_기간 | =addmonths(start\_date,contract\_length,0) |
| --- | --- | --- | --- |
| 8188 | 01/13/2020 | 18 | 07/13/2021 |
| 8189 | 02/26/2020 | 24 | 2022년 2월 26일 |
| 8190 | 03/27/2020 | 36 | 03/27/2023 |
| 8191 | 04/16/2020 | 24 | 04/16/2022 |
| 8192 | 05/21/2020 | 24 | 2022년 05월 21일 |
| 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 |