# weekstart 스크립트 및 차트 함수

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

구문:

WeekStart(timestamp [, period\_no [, first\_week\_day ]])

반환 데이터 유형: 이중

`weekstart()` 함수는 날짜가 속하는 주를 결정합니다. 그런 다음 해당 주의 첫 번째 밀리초에 대한 타임스탬프를 날짜 서식으로 반환합니다. 주의 첫 번째 요일은 `FirstWeekDay` 환경 변수에 의해 결정됩니다. 그러나 이는 `weekstart()` 함수의 `first_week_day` 인수로 대체될 수 있습니다.

인수

| 인수 | 설명 |
| --- | --- |
| timestamp | 평가할 날짜 또는 타임스탬프입니다. |
| period\_no | shift는 정수이며, 값 0은 date를 포함하는 주를 나타냅니다. shift가 음수 값일 경우 이전 주, 양수 값일 경우 다음 주를 나타냅니다. |
| first\_week\_day | 주의 시작 요일을 지정합니다. 생략하면 변수 FirstWeekDay의 값이 사용됩니다.<br><br>first\_week\_day에 가능한 값은 월요일에 0, 화요일에 1, 수요일에 2, 목요일에 3, 금요일에 4, 토요일에 5, 일요일에 6입니다.<br><br>시스템 변수에 대한 자세한 내용은 [FirstWeekDay](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm)를 참조하십시오. |

## weekstart를 사용하는 경우

`weekstart()` 함수는 일반적으로 사용자가 지금까지 경과된 주의 부분을 사용하여 계산하려고 할 때 표현식의 일부로 사용됩니다. 예를 들어, 사용자가 지금까지 한 주 동안 직원이 받은 총 급여를 계산하려는 경우 사용할 수 있습니다.

다음 예에서는 다음을 가정합니다.

```
SET FirstWeekDay=0;
```

함수 예

| 예제 | 결과 |
| --- | --- |
| `weekstart('01/12/2013')` | 01/07/2013을 반환합니다. |
| `weekstart('01/12/2013', -1 )` | 11/31/2012을 반환합니다. |
| `weekstart('01/12/2013', 0, 1)` | 01/08/2013을 반환합니다. |

## 국가별 설정

달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다: 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)을 참조하십시오.

주 및 주차에 대해 ISO 설정을 사용하려는 경우 스크립트에 다음이 포함되어 있는지 확인합니다.

```
Set DateFormat   ='YYYY-MM-DD'; 
Set FirstWeekDay =0;    // Monday as first week day
Set BrokenWeeks  =0;    //(use unbroken weeks)
Set ReferenceDay =4;    // Jan 4th is always in week 1
```

미국 설정을 사용하려는 경우 스크립트에 다음이 포함되어 있는지 확인합니다.

```
Set DateFormat   ='M/D/YYYY';
Set FirstWeekDay =6;    // Sunday as first week day
Set BrokenWeeks  =1;    //(use broken weeks)
Set ReferenceDay =1;    // Jan 1st is always in week 1
```

위의 예는 weekstart() 함수에서 다음과 같은 결과를 가져옵니다.

Weekstart 함수의 예

| 날짜 | ISO 주 시작 | US 주 시작 |
| --- | --- | --- |
| Sat 2020 Dec 26 | 2020년 12월 21일 | 12/20/2020 |
| Sun 2020 Dec 27 | 2020년 12월 21일 | 2020년 12월 27일 |
| Mon 2020 Dec 28 | 2020-12-28 | 2020년 12월 27일 |
| Tue 2020 Dec 29 | 2020년 12월 28일 | 2020년 12월 27일 |
| Wed 2020 Dec 30 | 2020년 12월 28일 | 2020년 12월 27일 |
| Thu 2020 Dec 31 | 2020년 12월 28일 | 2020년 12월 27일 |
| Fri 2021 Jan 1 | 2020년 12월 28일 | 2020년 12월 27일 |
| Sat 2021 Jan 2 | 2020년 12월 28일 | 2020년 12월 27일 |
| Sun 2021 Jan 3 | 2020년 12월 28일 | 2021년 1월 3일 |
| Mon 2021 Jan 4 | 2021-01-04 | 2021년 1월 3일 |
| Tue 2021 Jan 5 | 2021년 1월 4일 | 2021년 1월 3일 |

정보 메모주 시작은 ISO 열에서 월요일이고 미국 열에서 일요일입니다.

## 예 1 – 추가 인수 없음

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

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

개요

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

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

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

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

* 트랜잭션이 발생한 주의 시작에 대한 타임스탬프를 반환하는 필드 start\_of\_week 만들기.

로드 스크립트

```
SET FirstWeekDay=6;

Transactions:
    Load
        *,
        weekstart(date) as start_of_week,
        timestamp(weekstart(date)) as start_of_week_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\_week

* start\_of\_week\_timestamp

결과 테이블

| 날짜 | 주의 시작 | 주의 시작 타임스탬프 |
| --- | --- | --- |
| 1/7/2022 | 01/02/2022 | 2022년 1월 2일 오전 12시 00분 00초 |
| 1/19/2022 | 01/16/2022 | 2022년 1월 16일 오전 12:00:00 |
| 2/5/2022 | 2022년 1월 30일 | 2022년 1월 30일 오전 12:00:00 |
| 2/28/2022 | 2022.02.27 | 2022.02.27 오전 12:00:00 |
| 3/16/2022 | 2022.03.13 | 2022년 3월 13일 오전 12:00:00 |
| 4/1/2022 | 2022년 3월 27일 | 2022년 3월 27일 오전 12:00:00 |
| 5/7/2022 | 2022/05/01 | 2022년 5월 1일 오전 12:00:00 |
| 5/16/2022 | 2022/05/15 | 2022년 5월 15일 오전 12:00:00 |
| 6/15/2022 | 2022년 6월 12일 | 2022년 6월 12일 오전 12:00:00 |
| 6/26/2022 | 2022년 6월 26일 | 2022년 6월 26일 오전 12:00:00 |
| 7/9/2022 | 07/03/2022 | 2022년 7월 3일 오전 12:00:00 |
| 7/22/2022 | 2022년 7월 17일 | 2022년 7월 17일 오전 12:00:00 |
| 7/23/2022 | 2022년 7월 17일 | 2022년 7월 17일 오전 12:00:00 |
| 7/27/2022 | 2022년 07월 24일 | 2022년 7월 24일 오전 12:00:00 |
| 8/2/2022 | 07/31/2022 | 2022년 7월 31일 오전 12:00:00 |
| 8/8/2022 | 2022년 8월 7일 | 2022년 8월 7일 오전 12시 00분 00초 |
| 8/19/2022 | 2022년 8월 14일 | 2022년 8월 14일 오전 12시 00분 00초 |
| 9/26/2022 | 2022년 09월 25일 | 2022년 9월 25일 오전 12:00:00 |
| 10/14/2022 | 2022년 10월 09일 | 2022년 10월 9일 오전 12시 00분 00초 |
| 10/29/2022 | 2022년 10월 23일 | 2022년 10월 23일 오전 12시 00분 00초 |

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

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

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

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

weekstart()weekstart() 함수 다이어그램, 추가 인수가 없는 예 ![weekstart 함수가 트랜잭션 날짜를 트랜잭션이 발생한 주의 첫 번째 밀리초에 대한 타임스탬프로 변환하는 방법을 보여 주는 다이어그램입니다.](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekstart-examples-no-add-arg.png)

트랜잭션 8191은 2월 5일에 발생했습니다. FirstWeekDay 시스템 변수는 주의 첫 번째 요일을 일요일로 설정합니다. weekstart() 함수는 2월 5일 이전의 첫 번째 일요일(따라서 주의 시작)이 1월 30일임을 식별합니다. 따라서 해당 트랜잭션의 start\_of\_week 값은 해당 날짜의 첫 번째 밀리초, 즉 1월 30일 오전 12:00:00를 반환합니다.

## 예 2 – period\_no

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

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

개요

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

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

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

* 트랜잭션이 발생하기 전 분기 시작에 대한 타임스탬프를 반환하는 필드 previous\_week\_start 만들기.

로드 스크립트

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

Transactions:
    Load
        *,
        weekstart(date,-1) as previous_week_start,
        timestamp(weekstart(date,-1)) as previous_week_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\_week\_start

* previous\_week\_start\_timestamp

결과 테이블

| 날짜 | 지난 주 시작 | 지난주 시작 날짜와 시간 |
| --- | --- | --- |
| 1/7/2022 | 12/26/2021 | 2021년 12월 26일 오전 12시 00분 00초 |
| 1/19/2022 | 01/09/2022 | 2022년 1월 9일 오전 12시 00분 00초 |
| 2/5/2022 | 01/23/2022 | 2022년 1월 23일 오전 12:00:00 |
| 2/28/2022 | 02/20/2022 | 2022년 2월 20일 오전 12:00:00 |
| 3/16/2022 | 03/06/2022 | 2022년 3월 6일 오전 12:00:00 |
| 4/1/2022 | 03/20/2022 | 2022년 3월 20일 오전 12:00:00 |
| 5/7/2022 | 04/24/2022 | 2022년 4월 24일 오전 12:00:00 |
| 5/16/2022 | 05/08/2022 | 2022년 5월 8일 오전 12:00:00 |
| 6/15/2022 | 06/05/2022 | 2022년 6월 5일 오전 12:00:00 |
| 6/26/2022 | 06/19/2022 | 2022년 6월 19일 오전 12:00:00 |
| 7/9/2022 | 2022년 6월 26일 | 2022년 6월 26일 오전 12:00:00 |
| 7/22/2022 | 2022년 7월 10일 | 2022년 7월 10일 오전 12:00:00 |
| 7/23/2022 | 2022년 7월 10일 | 2022년 7월 10일 오전 12:00:00 |
| 7/27/2022 | 2022년 7월 17일 | 2022년 7월 17일 오전 12:00:00 |
| 8/2/2022 | 2022년 07월 24일 | 2022년 7월 24일 오전 12시 00분 00초 |
| 8/8/2022 | 07/31/2022 | 2022년 7월 31일 오전 12시 00분 00초 |
| 8/19/2022 | 2022년 08월 07일 | 2022년 08월 07일 오전 12시 00분 00초 |
| 9/26/2022 | 09/18/2022 | 2022년 09월 18일 오전 12시 00분 00초 |
| 10/14/2022 | 10/02/2022 | 2022년 10월 2일 오전 12:00:00 |
| 10/29/2022 | 10/16/2022 | 2022년 10월 16일 오전 12:00:00 |

이 경우 weekstart() 함수에서 period\_no -1을 오프셋 인수로 사용했으므로 이 함수는 먼저 트랜잭션이 발생한 주를 식별합니다. 그런 다음 1주일 전을 찾아 해당 주의 첫 번째 밀리초를 식별합니다.

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

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

weekstart()weekstart() 함수의 다이어그램, period\_no 예 ![weekstart 함수가 트랜잭션 날짜를 트랜잭션이 발생한 주의 첫 번째 밀리초에 대한 타임스탬프로 변환하는 방법을 보여 주는 다이어그램입니다.](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekstart-examples-period-no.png)

트랜잭션 8196은 6월 15일에 발생했습니다. weekstart() 함수는 주가 6월 12일에 시작함을 식별합니다. 따라서 이전 주는 6월 5일 오전 12:00:00에 시작되었습니다. previous\_week\_start 필드에 대해 반환되는 값입니다.

## 예 3 – first\_week\_day

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

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

개요

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

이 로드 스크립트에는 첫 번째 예와 동일한 데이터 집합 및 시나리오가 포함되어 있습니다. 그러나 이 예에서는 화요일을 근무 주의 첫 번째 요일로 설정해야 합니다.

로드 스크립트

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

Transactions:
    Load
        *,
        weekstart(date,0,1) as start_of_week,
        timestamp(weekstart(date,0,1)) as start_of_week_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\_week

* start\_of\_week\_timestamp

결과 테이블

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

이 경우 weekstart() 함수에서 first\_week\_date 인수 1을 사용하므로 주의 첫 번째 날을 화요일로 설정합니다.

weekstart() 함수 다이어그램, first\_week\_day 예

weekstart() 함수 다이어그램, first\_week\_day 예

weekstart()weekstart() 함수 다이어그램, first\_week\_day 예 ![weekstart 함수가 트랜잭션 날짜를 트랜잭션이 발생한 주의 첫 번째 밀리초에 대한 타임스탬프로 변환하는 방법을 보여 주는 다이어그램입니다.](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekstart-examples-first-week-day.png)

트랜잭션 8191은 2월 5일에 발생했습니다. weekstart() 함수는 이 날짜 이전의 첫 번째 화요일(따라서 주의 시작 및 반환된 값)이 2월 1일 오전 12:00:00임을 식별합니다.

## 예 4 – 차트 개체 예

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

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

개요

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

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

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

로드 스크립트

```
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.

트랜잭션이 발생한 주의 시작을 계산하려면 다음 측정값을 추가합니다.

* =weekstart(date)

* =timestamp(weekstart(date))

결과 테이블

| 날짜 | 주의 시작 | 주의 시작 타임스탬프 |
| --- | --- | --- |
| 1/7/2022 | 01/02/2022 | 2022년 1월 2일 오전 12시 00분 00초 |
| 1/19/2022 | 01/16/2022 | 2022년 1월 16일 오전 12:00:00 |
| 2/5/2022 | 2022년 1월 30일 | 2022년 1월 30일 오전 12:00:00 |
| 2/28/2022 | 2022.02.27 | 2022.02.27 오전 12:00:00 |
| 3/16/2022 | 2022.03.13 | 2022년 3월 13일 오전 12:00:00 |
| 4/1/2022 | 2022년 3월 27일 | 2022년 3월 27일 오전 12:00:00 |
| 5/7/2022 | 2022/05/01 | 2022년 5월 1일 오전 12:00:00 |
| 5/16/2022 | 2022/05/15 | 2022년 5월 15일 오전 12:00:00 |
| 6/15/2022 | 2022년 6월 12일 | 2022년 6월 12일 오전 12:00:00 |
| 6/26/2022 | 2022년 6월 26일 | 2022년 6월 26일 오전 12:00:00 |
| 7/9/2022 | 2022년 07월 03일 | 2022년 7월 3일 오전 12:00:00 |
| 7/22/2022 | 2022년 7월 17일 | 2022년 7월 17일 오전 12:00:00 |
| 7/23/2022 | 2022년 7월 17일 | 2022년 7월 17일 오전 12:00:00 |
| 7/27/2022 | 2022년 07월 24일 | 2022년 7월 24일 오전 12:00:00 |
| 8/2/2022 | 07/31/2022 | 2022년 7월 31일 오전 12:00:00 |
| 8/8/2022 | 2022년 8월 7일 | 2022년 8월 7일 오전 12시 00분 00초 |
| 8/19/2022 | 2022년 8월 14일 | 2022년 8월 14일 오전 12시 00분 00초 |
| 9/26/2022 | 2022년 09월 25일 | 2022년 9월 25일 오전 12:00:00 |
| 10/14/2022 | 2022년 10월 09일 | 2022년 10월 9일 오전 12시 00분 00초 |
| 10/29/2022 | 2022년 10월 23일 | 2022년 10월 23일 오전 12시 00분 00초 |

start\_of\_week 측정값은 weekstart() 함수를 사용하고 date 필드를 함수의 인수로 전달하여 차트 개체에서 만들어집니다.

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

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

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

weekstart()weekstart() 함수의 다이어그램, 차트 개체 예 ![weekstart 함수가 트랜잭션 날짜를 트랜잭션이 발생한 주의 첫 번째 밀리초에 대한 타임스탬프로 변환하는 방법을 보여 주는 다이어그램입니다.](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekstart-examples-chart-object.png)

트랜잭션 8191은 2월 5일에 발생했습니다. FirstWeekDay 시스템 변수는 주의 첫 번째 요일을 일요일로 설정합니다. weekstart() 함수는 2월 5일 이전의 첫 번째 일요일(따라서 주의 시작)이 1월 30일임을 식별합니다. 따라서 해당 트랜잭션의 start\_of\_week 값은 해당 날짜의 첫 번째 밀리초, 즉 1월 30일 오전 12:00:00를 반환합니다.

## 예 5 – 시나리오

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

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

개요

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

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

* Payroll라는 테이블에 로드되는 데이터 집합.

* 직원 ID, 직원 이름, 직원별 일일 급여로 구성된 데이터.

직원들은 월요일에 근무를 시작하여 주 6일 근무합니다. FirstWeekDay 시스템 변수는 수정하면 안 됩니다.

최종 사용자는 직원 ID 및 직원 이름별로 해당 주부터 현재까지 번 임금을 표시하는 차트 개체를 원합니다.

로드 스크립트

```
Payroll: 
Load
*
Inline 
[
employee_id,employee_name,day_rate
182,Mark, $150
183,Deryck, $125
184,Dexter, $125
185,Sydney,$270
186,Agatha,$128
];
```

결과

다음과 같이 하십시오.

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

   * employee\_id

   * employee\_name

2. 다음으로 해당 주부터 현재까지 번 임금을 계산하는 측정값을 만듭니다.

   =if(today(1)-weekstart(today(1),0,0)&lt;7,(today(1)-weekstart(today(1),0,0))\*day\_rate,day\_rate\*6)

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

결과 테이블

| employee\_id | employee\_name | =if(today(1)-weekstart(today(1),0,0)&lt;7,(today(1)-weekstart(today(1),0,0))\*day\_rate,day\_rate\*6) |
| --- | --- | --- |
| 182 | Mark | $600.00 |
| 183 | Deryck | $500.00 |
| 184 | Dexter | $500.00 |
| 185 | Sydney | $1080.00 |
| 186 | Agatha | $512.00 |

weekstart() 함수는 오늘 날짜를 첫 번째 인수로 사용하고 0을 세 번째 인수로 사용하여 월요일을 주의 첫 번째 요일로 설정하고 현재 주의 시작 날짜를 반환합니다. 현재 날짜에서 해당 결과를 빼면 이 표현식은 이번 주에 지금까지 경과한 일 수를 반환합니다.

그런 다음 이 조건은 이번 주에 6일보다 많이 있었는지 여부를 평가합니다. 그렇다면 직원의 day\_rate에 6일을 곱합니다. 그렇지 않으면 day\_rate에 이번 주에 지금까지 발생한 일 수를 곱합니다.