# monthstart 스크립트 및 차트 함수

이 함수는 date를 포함하는 월의 첫 번째 날의 첫 번째 밀리초의 타임스탬프에 해당하는 값을 반환합니다. 기본 출력 형식은 스크립트에 설정된 DateFormat입니다.

구문:

MonthStart(date[, period\_no])

반환 데이터 유형: 이중

`monthstart()` 함수 다이어그램

`monthstart()` 함수 다이어그램

`monthstart()`monthstart() 함수 다이어그램 ![이 함수의 요소가 함께 작동하여 결과를 반환하는 방법에 대한 다이어그램 예입니다.](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthstart-general.png)

`monthstart()` 함수는 날짜가 속하는 월을 확인합니다. 그런 다음 해당 월의 첫 번째 밀리초에 대한 타임스탬프를 날짜 서식으로 반환합니다.

인수

| 인수 | 설명 |
| --- | --- |
| date | 평가할 날짜 또는 타임스탬프입니다. |
| period\_no | period\_no는 정수이며, 0이거나 생략되는 경우는 date를 포함하는 월을 나타냅니다. period\_no가 음수 값일 경우 이전 달, 양수 값일 경우 다음 달을 나타냅니다. |

## 사용 시기

`monthstart()` 함수는 일반적으로 사용자가 지금까지 경과된 월의 부분을 사용하여 계산하려고 할 때 표현식의 일부로 사용됩니다. 예를 들어 특정 날짜까지 한 달 동안 누적된 이자를 계산하는 데 사용할 수 있습니다.

함수 예

| 예제 | 결과 |
| --- | --- |
| `monthstart('10/19/2001')` | 10/01/2001을 반환합니다. |
| `monthstart('10/19/2001', -1)` | 09/01/2001을 반환합니다. |

## 국가별 설정

달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다: MM/DD/YYYY.날짜 형식은 데이터 로드 스크립트의 `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/monthstart.htm)

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

개요

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

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

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

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

* 트랜잭션이 발생한 월의 시작에 대한 타임스탬프를 반환하는 필드 `start_of_month` 만들기.

로드 스크립트

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

Transactions:
    Load
        *,
        monthstart(date) as start_of_month,
        timestamp(monthstart(date)) as start_of_month_timestamp
        ;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

결과

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

* `date`

* `start_of_month`

* `start_of_month_timestamp`

결과 테이블

| 날짜 | 월초 | 월초 타임스탬프 |
| --- | --- | --- |
| 1/7/2022 | 01/01/2022 | 2022년 1월 1일 오전 12시 00분 00초 |
| 1/19/2022 | 01/01/2022 | 2022년 1월 1일 오전 12:00:00 |
| 2/5/2022 | 2022년 2월 1일 | 2022년 2월 1일 오전 12:00:00 |
| 2/28/2022 | 2022년 02월 01일 | 2022년 2월 1일 오전 12:00:00 |
| 3/16/2022 | 03/01/2022 | 2022년 3월 1일 오전 12:00:00 |
| 4/1/2022 | 2022/04/01 | 4/1/2022 12:00:00 AM |
| 5/7/2022 | 2022/05/01 | 2022년 5월 1일 오전 12:00:00 |
| 5/16/2022 | 2022년 5월 1일 | 5/1/2022 12:00:00 오전 |
| 6/15/2022 | 06/01/2022 | 2022년 6월 1일 오전 12시 00분 00초 |
| 6/26/2022 | 07/01/2022 | 2022년 6월 1일 오전 12:00:00 |
| 7/9/2022 | 2022년 7월 1일 | 2022년 7월 1일 오전 12시 00분 00초 |
| 7/22/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 7/23/2022 | 2022년 07월 01일 | 2022년 07월 01일 오전 12시 00분 00초 |
| 7/27/2022 | 2022년 07월 01일 | 2022년 7월 1일 오전 12시 00분 00초 |
| 8/2/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 8/8/2022 | 2022년 8월 1일 | 2022년 8월 1일 오전 12:00:00 |
| 8/19/2022 | 2022년 08월 01일 | 2022년 08월 01일 오전 12시 00분 00초 |
| 9/26/2022 | 2022.09.01 | 2022년 09월 01일 오전 12시 00분 00초 |
| 10/14/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
| 10/29/2022 | 2022년 10월 1일 | 2022년 10월 1일 오전 12:00:00 |

`start_of_month` 필드는 `monthstart()` 함수를 사용하고 날짜 필드를 함수의 인수로 전달하여 선행 LOAD 문에서 만들어집니다.

`monthstart()` 함수는 날짜 값이 속하는 월을 식별하고 해당 월의 첫 번째 밀리초에 대한 타임스탬프를 반환합니다.

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

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

`monthstart()`monthstart() 함수 다이어그램, 추가 인수가 없는 예 ![트랜잭션이 발생한 월을 확인하기 위해 monthstart 함수를 사용한 결과를 보여 주는 다이어그램입니다.](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthstart-example-no-add-arg.png)

트랜잭션 8192는 3월 16일에 발생했습니다. `monthstart()` 함수는 해당 월의 첫 번째 밀리초, 즉 3월 1일 오전 12:00:00를 반환합니다.

## 예 2 – period\_no

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

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

개요

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

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

* 첫 번째 예와 동일한 데이터 집합 및 시나리오.

* 트랜잭션이 발생하기 전 월의 시작에 대한 타임스탬프를 반환하는 필드 `previous_month_start` 만들기.

로드 스크립트

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

Transactions:
    Load
        *,
        monthstart(date,-1) as previous_month_start,
        timestamp(monthstart(date,-1)) as previous_month_start_timestamp
        ;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

결과

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

* `date`

* `previous_month_start`

* `previous_month_start_timestamp`

결과 테이블

| 날짜 | 지난달 시작 | 지난달 시작 日付と時刻 |
| --- | --- | --- |
| 1/7/2022 | 2021년 12월 01일 | 2021년 12월 1일 오전 12:00:00 |
| 1/19/2022 | 2021년 12월 01일 | 2021년 12월 01일 오전 12시 00분 00초 |
| 2/5/2022 | 01/01/2022 | 2022년 01월 01일 오전 12시 00분 00초 |
| 2/28/2022 | 01/01/2022 | 2022년 1월 1일 오전 12시 00분 00초 |
| 3/16/2022 | 2022년 2월 1일 | 2022년 2월 1일 오전 12시 00분 00초 |
| 4/1/2022 | 2022년 03월 01일 | 2022년 03월 01일 오전 12시 00분 00초 |
| 5/7/2022 | 04/01/2022 | 2022년 4월 1일 오전 12:00:00 |
| 5/16/2022 | 2022년 4월 1일 | 2022년 4월 1일 오전 12:00:00 |
| 6/15/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 6/26/2022 | 05/01/2022 | 2022년 5월 1일 오전 12:00:00 |
| 7/9/2022 | 2022년 6월 1일 | 6/1/2022 12:00:00 AM |
| 7/22/2022 | 2022년 06월 01일 | 2022년 06월 01일 오전 12시 00분 00초 |
| 7/23/2022 | 2022년 06월 01일 | 2022년 6월 1일 오전 12시 00분 00초 |
| 7/27/2022 | 2022년 6월 1일 | 2022년 6월 1일 오전 12시 00분 00초 |
| 8/2/2022 | 2022년 07월 01일 | 2022년 07월 01일 오전 12시 00분 00초 |
| 8/8/2022 | 2022년 07월 01일 | 2022년 7월 1일 오전 12시 00분 00초 |
| 8/19/2022 | 2022년 7월 1일 | 2022년 7월 1일 오전 12시 00분 00초 |
| 9/26/2022 | 2022년 08월 01일 | 2022년 08월 01일 오전 12시 00분 00초 |
| 10/14/2022 | 2022년 09월 01일 | 2022년 9월 1일 오전 12시 00분 00초 |
| 10/29/2022 | 09/01/2022 | 2022년 9월 1일 오전 12시 00분 00초 |

이 경우 `monthstart()` 함수에서 `period_no` -1을 오프셋 인수로 사용했으므로 이 함수는 먼저 트랜잭션이 발생한 월을 식별합니다. 그런 다음 한 달 전으로 시프트하고 해당 월의 첫 번째 밀리초를 식별합니다.

`monthstart()` 함수의 다이어그램, period\_no 예

`monthstart()` 함수의 다이어그램, period\_no 예

`monthstart()`monthstart() 함수의 다이어그램, period\_no 예 ![트랜잭션이 발생한 월을 확인하기 위해 monthstart 함수를 사용한 결과를 보여 주는 다이어그램입니다.](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthstart-example-period-no.png)

트랜잭션 8192는 3월 16일에 발생했습니다. `monthstart()` 함수는 트랜잭션이 발생하기 전 월이 2월임을 식별합니다. 그런 다음 해당 월의 첫 번째 밀리초, 즉 2월 1일 오전 12:00:00를 반환합니다.

## 예 3 – 차트 개체 예

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

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

개요

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

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

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

로드 스크립트

```

SET DateFormat='MM/DD/YYYY';
 
Transactions:
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

결과

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

트랜잭션이 발생한 월의 시작 날짜를 계산하려면 다음 측정값을 만듭니다.

* `=monthstart(date)`

* `=timestamp(monthstart(date))`

결과 테이블

| 날짜 | =월시작(날짜) | =타임스탬프(월시작(날짜)) |
| --- | --- | --- |
| 10/14/2022 | 10/01/2022 | 10/1/2022 12:00:00 AM |
| 10/29/2022 | 2022년 10월 1일 | 2022년 10월 1일 오전 12:00:00 |
| 9/26/2022 | 2022.09.01 | 2022.09.01 오전 12:00:00 |
| 8/2/2022 | 08/01/2022 | 8/1/2022 12:00:00 AM |
| 8/8/2022 | 2022년 8월 1일 | 2022년 8월 1일 오전 12:00:00 |
| 8/19/2022 | 2022년 08월 01일 | 8/1/2022 12:00:00 AM |
| 7/9/2022 | 2022년 7월 1일 | 2022년 7월 1일 오전 12시 00분 00초 |
| 7/22/2022 | 07/01/2022 | 7/1/2022 12:00:00 AM |
| 7/23/2022 | 2022년 07월 01일 | 2022년 07월 01일 오전 12시 00분 00초 |
| 7/27/2022 | 2022년 07월 01일 | 2022년 7월 1일 오전 12시 00분 00초 |
| 6/15/2022 | 06/01/2022 | 2022년 6월 1일 오전 12시 00분 00초 |
| 6/26/2022 | 2022/06/01 | 2022/06/01 오전 12:00:00 |
| 5/7/2022 | 2022/05/01 | 2022년 5월 1일 오전 12:00:00 |
| 5/16/2022 | 2022년 5월 1일 | 2022년 5월 1일 오전 12:00:00 |
| 4/1/2022 | 2022/04/01 | 4/1/2022 12:00:00 AM |
| 3/16/2022 | 03/01/2022 | 2022년 3월 1일 오전 12:00:00 |
| 2/5/2022 | 2022년 2월 1일 | 2022년 2월 1일 오전 12:00:00 |
| 2/28/2022 | 2022년 02월 01일 | 2022년 2월 1일 오전 12시 00분 00초 |
| 1/7/2022 | 01/01/2022 | 2022년 1월 1일 오전 12시 00분 00초 |
| 1/19/2022 | 01/01/2022 | 1/1/2022 12:00:00 AM |

`start_of_month` 측정값은 `monthstart()` 함수를 사용하고 날짜 필드를 함수의 인수로 전달하여 차트 개체에서 만들어집니다.

`monthstart()` 함수는 날짜 값이 속하는 월을 식별하고 해당 월의 첫 번째 밀리초에 대한 타임스탬프를 반환합니다.

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

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

`monthstart()`monthstart() 함수의 다이어그램, 차트 개체 예 ![트랜잭션이 발생한 월을 확인하기 위해 monthstart 함수를 사용한 결과를 보여 주는 다이어그램입니다.](https://help.qlik.com/ko-KR/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-monthstart-example-chart-object.png)

트랜잭션 8192는 3월 16일에 발생했습니다. `monthstart()` 함수는 트랜잭션이 3월에 발생했음을 식별하고 해당 월의 첫 번째 밀리초, 즉 3월 1일 오전 12:00:00를 반환합니다.

## 예 4 – 시나리오

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

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

개요

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

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

* Loans라는 테이블에 로드되는 대출 잔액 집합이 포함된 데이터 집합.

* 대출 ID, 월초 잔액, 각 대출에 연간 부과되는 단순 이자율로 구성된 데이터.

최종 사용자는 해당 월부터 현재까지 각 대출에 대해 발생한 현재 이자를 대출 ID별로 표시하는 차트 개체를 원합니다.

로드 스크립트

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

Loans:
Load
*
Inline
[
loan_id,start_balance,rate
8188,$10000.00,0.024
8189,$15000.00,0.057
8190,$17500.00,0.024
8191,$21000.00,0.034
8192,$90000.00,0.084
];
```

결과

다음과 같이 하십시오.

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

   * loan\_id

   * start\_balance

2. 다음으로 누적 이자를 계산하는 측정값을 만듭니다.

   =start\_balance\*(rate\*(today(1)-monthstart(today(1)))/365)

3. 측정값의 숫자 형식을 화폐로 설정합니다.

결과 테이블

| loan\_id | 시작 잔액 | =시작\_잔액\*(이자율\*(오늘(1)-월초(오늘(1)))/365) |
| --- | --- | --- |
| 8188 | $10000.00 | $16.44 |
| 8189 | $15000.00 | $58.56 |
| 8190 | $17500.00 | $28.77 |
| 8191 | $21000.00 | $48.90 |
| 8192 | $90000.00 | $517.81 |

오늘 날짜를 유일한 인수로 사용하는 monthstart() 함수는 현재 월의 시작 날짜를 반환합니다. 이 표현식은 현재 날짜에서 해당 결과를 빼서 이번 달에 지금까지 경과한 일수를 반환합니다.

그런 다음 이 값에 이자율을 곱하고 365로 나누어 이 기간 동안 발생한 유효 이자율을 반환합니다. 그런 다음 결과에 대출의 시작 잔액을 곱하여 이번 달에 지금까지 발생한 이자를 반환합니다.