weekstart() 함수는 날짜가 속하는 주를 결정합니다. 그런 다음 해당 주의 첫 번째 밀리초에 대한 타임스탬프를 날짜 서식으로 반환합니다. 주의 첫 번째 요일은 FirstWeekDay 환경 변수에 의해 결정됩니다. 그러나 이는 weekstart() 함수의 first_week_day 인수로 대체될 수 있습니다.
인수
인수
설명
timestamp
평가할 날짜 또는 타임스탬프입니다.
period_no
shift는 정수이며, 값 0은 date를 포함하는 주를 나타냅니다. shift가 음수 값일 경우 이전 주, 양수 값일 경우 다음 주를 나타냅니다.
first_week_day
주의 시작 요일을 지정합니다. 생략하면 변수 FirstWeekDay의 값이 사용됩니다.
first_week_day에 가능한 값은 월요일에 0, 화요일에 1, 수요일에 2, 목요일에 3, 금요일에 4, 토요일에 5, 일요일에 6입니다.
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를 반환합니다.
국가별 설정
달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 SET DateFormat 문에 지정됩니다. 기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다. 아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다. 또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다.
앱의 기본 국가별 설정은 Qlik Sense가 설치된 컴퓨터 또는 서버의 국가별 시스템 설정을 기반으로 합니다. 액세스하는 Qlik Sense 서버가 스웨덴으로 설정된 경우 데이터 로드 편집기는 날짜, 시간 및 통화에 대해 스웨덴 지역 설정을 사용합니다. 이러한 국가별 형식 설정은 Qlik Sense 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Sense는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
주 및 주차에 대해 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 함수의 예
Date
ISO 주 시작
US 주 시작
Sat 2020 Dec 26
2020-12-21
12/20/2020
Sun 2020 Dec 27
2020-12-21
12/27/2020
Mon 2020 Dec 28
2020-12-28
12/27/2020
Tue 2020 Dec 29
2020-12-28
12/27/2020
Wed 2020 Dec 30
2020-12-28
12/27/2020
Thu 2020 Dec 31
2020-12-28
12/27/2020
Fri 2021 Jan 1
2020-12-28
12/27/2020
Sat 2021 Jan 2
2020-12-28
12/27/2020
Sun 2021 Jan 3
2020-12-28
1/3/2021
Mon 2021 Jan 4
2021-01-04
1/3/2021
Tue 2021 Jan 5
2021-01-04
1/3/2021
정보 메모주 시작은 ISO 열에서 월요일이고 미국 열에서 일요일입니다.
예 1 – 추가 인수 없음
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Transactions라는 테이블에 로드되는 2022년 트랜잭션 집합이 포함된 데이터 집합.
DateFormat 시스템 변수(MM/DD/YYYY) 서식으로 제공된 날짜 필드.
트랜잭션이 발생한 주의 시작에 대한 타임스탬프를 반환하는 필드 start_of_week 만들기.
start_of_week 필드는 weekstart() 함수를 사용하고 날짜 필드를 함수의 인수로 전달하여 선행 LOAD 문에서 만들어집니다.
weekstart() 함수는 날짜 값이 속하는 주를 초기에 식별하고 해당 주의 첫 번째 밀리초에 대한 타임스탬프를 반환합니다.
트랜잭션 8191은 2월 5일에 발생했습니다. FirstWeekDay 시스템 변수는 주의 첫 번째 요일을 일요일로 설정합니다. weekstart() 함수는 2월 5일 이전의 첫 번째 일요일(따라서 주의 시작)이 1월 30일임을 식별합니다. 따라서 해당 트랜잭션의 start_of_week 값은 해당 날짜의 첫 번째 밀리초, 즉 1월 30일 오전 12:00:00를 반환합니다.
예 2 – period_no
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
첫 번째 예와 동일한 데이터 집합 및 시나리오.
트랜잭션이 발생하기 전 분기 시작에 대한 타임스탬프를 반환하는 필드 previous_week_start 만들기.
데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다. date.
트랜잭션이 발생한 주의 시작을 계산하려면 다음 측정값을 추가합니다.
=weekstart(date)
=timestamp(weekstart(date))
결과 테이블
date
start_of_week
start_of_week_timestamp
1/7/2022
01/02/2022
1/2/2022 12:00:00 AM
1/19/2022
01/16/2022
1/16/2022 12:00:00 AM
2/5/2022
01/30/2022
1/30/2022 12:00:00 AM
2/28/2022
02/27/2022
2/27/2022 12:00:00 AM
3/16/2022
03/13/2022
3/13/2022 12:00:00 AM
4/1/2022
03/27/2022
3/27/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/16/2022
05/15/2022
5/15/2022 12:00:00 AM
6/15/2022
06/12/2022
6/12/2022 12:00:00 AM
6/26/2022
06/26/2022
6/26/2022 12:00:00 AM
7/9/2022
07/03/2022
7/3/2022 12:00:00 AM
7/22/2022
07/17/2022
7/17/2022 12:00:00 AM
7/23/2022
07/17/2022
7/17/2022 12:00:00 AM
7/27/2022
07/24/2022
7/24/2022 12:00:00 AM
8/2/2022
07/31/2022
7/31/2022 12:00:00 AM
8/8/2022
08/07/2022
8/7/2022 12:00:00 AM
8/19/2022
08/14/2022
8/14/2022 12:00:00 AM
9/26/2022
09/25/2022
9/25/2022 12:00:00 AM
10/14/2022
10/09/2022
10/9/2022 12:00:00 AM
10/29/2022
10/23/2022
10/23/2022 12:00:00 AM
start_of_week 측정값은 weekstart() 함수를 사용하고 date 필드를 함수의 인수로 전달하여 차트 개체에서 만들어집니다.
weekstart() 함수는 날짜 값이 속하는 주를 초기에 식별하고 해당 주의 첫 번째 밀리초에 대한 타임스탬프를 반환합니다.
트랜잭션 8191은 2월 5일에 발생했습니다. FirstWeekDay 시스템 변수는 주의 첫 번째 요일을 일요일로 설정합니다. weekstart() 함수는 2월 5일 이전의 첫 번째 일요일(따라서 주의 시작)이 1월 30일임을 식별합니다. 따라서 해당 트랜잭션의 start_of_week 값은 해당 날짜의 첫 번째 밀리초, 즉 1월 30일 오전 12:00:00를 반환합니다.
예 5 – 시나리오
개요
데이터 로드 편집기를 열고 아래의 로드 스크립트를 새 탭에 추가합니다.
로드 스크립트에는 다음이 포함됩니다.
Payroll라는 테이블에 로드되는 데이터 집합.
직원 ID, 직원 이름, 직원별 일일 급여로 구성된 데이터.
직원들은 월요일에 근무를 시작하여 주 6일 근무합니다. FirstWeekDay 시스템 변수는 수정하면 안 됩니다.
최종 사용자는 직원 ID 및 직원 이름별로 해당 주부터 현재까지 번 임금을 표시하는 차트 개체를 원합니다.