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 Cloud 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Cloud는 사용 중인 브라우저와 동일한 언어로 표시됩니다.
주 및 주차에 대해 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 및 직원 이름별로 해당 주부터 현재까지 번 임금을 표시하는 차트 개체를 원합니다.