# daystart 스크립트 및 차트 함수

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

구문:

DayStart(time[, [period\_no[, day\_start]])

반환 데이터 유형: 이중

인수

| 인수 | 설명 |
| --- | --- |
| time | 평가할 타임스탬프입니다. |
| period\_no | period\_no는 정수 또는 정수로 처리되는 표현식이며, 값 0은 time을 포함하는 날을 나타냅니다. period\_no가 음수 값일 경우 이전 날, 양수 값일 경우 이후 날을 나타냅니다. |
| day\_start | 하루가 자정에 시작되지 않도록 지정하려면 day\_start에 하루의 분위수로 오프셋을 지정합니다. 예를 들어 0.125는 오전 3:00을 나타냅니다.<br><br>즉, 오프셋을 만들려면 시작 시간을 24시간으로 나눕니다. 예를 들어, 하루를 오전 7시에 시작하도록 하려면 분수 7/24를 사용합니다. |

## daystart를 사용하는 경우

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

이 예에서는 타임스탬프 형식 `'M/D/YYYY h:mm:ss[.fff] TT'`을 사용합니다. 타임스탬프 형식은 데이터 로드 스크립트 맨 위에서 `SET TimeStamp` 문으로 지정됩니다. 이 예제의 서식을 필요에 따라 변경하십시오.

함수 예

| 예제 | 결과 |
| --- | --- |
| `daystart('01/25/2013 4:45:00 PM')` | 1/25/2013 12:00:00 AM을 반환합니다. |
| `daystart('1/25/2013 4:45:00 PM', -1)` | 1/24/2013 12:00:00 AM을 반환합니다. |
| `daystart('1/25/2013 16:45:00',0,0.5<br>)` | 1/25/2013 12:00:00 PM을 반환합니다. |

## 국가별 설정

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

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

개요

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

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

* `Calendar`라는 테이블에 로드되는 날짜 목록이 포함된 간단한 데이터 집합.

* 기본 `TimeStampFormat` 시스템 변수(`(M/D/YYYY h:mm:ss[.fff] TT`)가 사용됩니다.

* `daystart()` 함수를 사용하여 `SOD_timestamp`라는 추가 필드를 만드는 선행 LOAD입니다.

날짜를 제외하고 함수에 추가 매개 변수가 제공되지 않습니다.

로드 스크립트

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

Calendar:
    Load
        date,
        daystart(date) as SOD_timestamp
        ;
Load
date
Inline 
[
date
03/11/2022 1:47:15 AM
03/12/2022 4:34:58 AM
03/13/2022 5:15:55 AM
03/14/2022 9:25:14 AM
03/15/2022 10:06:54 AM
03/16/2022 10:44:42 AM
03/17/2022 11:33:30 AM
03/18/2022 12:58:14 PM
03/19/2022 4:23:12 PM
03/20/2022 6:42:15 PM
03/21/2022 7:41:16 PM
];
					
```

결과

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

* `date`

* `SOD_timestamp`

결과 테이블

| 날짜 | SOD\_타임스탬프 |
| --- | --- |
| 03/11/2022 1:47:15 AM | 2022년 3월 11일 오전 12:00:00 |
| 03/12/2022 4:34:58 AM | 2022년 3월 12일 오전 12시 00분 00초 |
| 03/13/2022 5:15:55 AM | 2022년 3월 13일 오전 12:00:00 |
| 2022년 3월 14일 오전 9:25:14 | 2022년 3월 14일 오전 12:00:00 |
| 03/15/2022 10:06:54 AM | 2022년 3월 15일 오전 12:00:00 |
| 03/16/2022 10:44:42 AM | 2022년 3월 16일 오전 12시 00분 00초 |
| 03/17/2022 11:33:30 AM | 2022년 3월 17일 오전 12:00:00 |
| 03/18/2022 12:58:14 PM | 2022년 03월 18일 오전 12:00:00 |
| 03/19/2022 4:23:12 PM | 2022년 3월 19일 오전 12:00:00 |
| 03/20/2022 6:42:15 PM | 2022년 3월 20일 오전 12:00:00 |
| 03/21/2022 7:41:16 PM | 2022년 03월 21일 오전 12:00:00 |

위의 표에서 볼 수 있듯이 데이터 집합의 각 날짜에 대해 하루의 종료 타임스탬프가 생성됩니다. 타임스탬프는 시스템 변수 형식 `TimestampFormat M/D/YYYY h:mm:ss[.fff] TT`입니다.

## 예 2 – period\_no

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

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

개요

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

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

* `Fines`라는 테이블에 로드되는 주차 벌금이 포함된 데이터 집합. 데이터 집합에는 다음 필드가 포함됩니다.

  * `id`

  * `due_date`

  * `number_plate`

  * `amount`

* `daystart()` 함수를 사용하고 세 가지 매개 변수(`time`, `period_no` 및 `day_start`)를 모두 제공하는 선행 LOAD. 이 선행 LOAD는 다음과 같은 두 개의 새 날짜 필드를 만듭니다.

  * 지급 기한 7일 전부터 시작되는 `early_repayment_period` 날짜 필드.

  * 지급 기한 14일 후에 시작되는 `late_penalty_period` 날짜 필드.

로드 스크립트

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

Fines:
    Load
        *,
        daystart(due_date,-7) as early_repayment_period,
        daystart(due_date,14) as late_penalty_period
        ;
Load
*
Inline
[
id, due_date, number_plate,amount
1,02/11/2022, 573RJG,50.00
2,03/25/2022, SC41854,50.00
3,04/14/2022, 8EHZ378,50.00
4,06/28/2022, 8HSS198,50.00
5,08/15/2022, 1221665,50.00
6,11/16/2022, EAK473,50.00
7,01/17/2023, KD6822,50.00
8,03/22/2023, 1GGLB,50.00
];
```

결과

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

* `due_date`

* `early_repayment_period`

* `late_penalty_period`

결과 테이블

| 납기일 | 조기 상환 기간 | 연체료 부과 기간 |
| --- | --- | --- |
| 02/11/2022 9:25:14 AM | 2022년 02월 04일 오전 12시 00분 00초 | 2022년 02월 25일 오전 12시 00분 00초 |
| 2022년 03월 25일 오전 10시 06분 54초 | 2022년 03월 18일 오전 12시 00분 00초 | 2022년 04월 08일 오전 12시 00분 00초 |
| 2022년 4월 14일 오전 10:44:42 | 2022년 4월 7일 오전 12시 00분 00초 | 2022년 4월 28일 오전 12시 00분 00초 |
| 2022년 6월 28일 오전 11:33:30 | 2022년 6월 21일 | 2022년 7월 12일 오전 12시 00분 00초 |
| 2022년 8월 15일 오후 12시 58분 14초 | 2022년 8월 8일 오전 12시 00분 00초 | 2022년 8월 29일 오전 12시 00분 00초 |
| 11/16/2022 4:23:12 PM | 2022년 11월 9일 오전 12시 00분 00초 | 2022년 11월 30일 오전 12시 00분 00초 |
| 01/17/2023 6:42:15 PM | 2023년 1월 10일 오전 12:00:00 | 2023년 1월 31일 오전 12:00:00 |
| 2023년 3월 22일 오후 7시 41분 16초 | 2023/03/15 오전 12:00:00 | 2023년 4월 5일 오전 12:00:00 |

새 필드의 값은 `TimestampFormat M/DD/YYYY tt`에 있습니다. 함수 `daystart()`가 사용되었으므로 타임스탬프 값은 모두 그날의 첫 번째 밀리초입니다.

조기 상환 기간 값은 `  daystart() ` 함수에 전달된 두 번째 인수가 음수이므로 기한 7일 전입니다.

지연 상환 기간 값은 `daystart()` 함수에 전달된 두 번째 인수가 양수이므로 기한 14일 후입니다.

## 예 3 – day\_start

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

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

개요

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

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

* 이전 예와 동일한 데이터 집합 및 시나리오입니다.

* 이전 예와 동일한 선행 LOAD입니다.

이 예에서는 매일 오전 7시에 시작하고 종료하도록 근무일을 설정합니다.

로드 스크립트

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

Fines:
    Load
        *,
        daystart(due_date,-7,7/24) as early_repayment_period,	 
        daystart(due_date,14, 7/24) as late_penalty_period
        ;
Load
*
Inline
[
id, due_date, number_plate,amount
1,02/11/2022, 573RJG,50.00
2,03/25/2022, SC41854,50.00
3,04/14/2022, 8EHZ378,50.00
4,06/28/2022, 8HSS198,50.00
5,08/15/2022, 1221665,50.00
6,11/16/2022, EAK473,50.00
7,01/17/2023, KD6822,50.00
8,03/22/2023, 1GGLB,50.00
];
```

결과

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

* `due_date`

* `early_repayment_period`

* `late_penalty_period`

결과 테이블

| 납기일 | 조기 상환 기간 | 연체 위약금 기간 |
| --- | --- | --- |
| 02/11/2022 | 2/3/2022 7:00:00 AM | 2/24/2022 7:00:00 AM |
| 03/25/2022 | 3/17/2022 7:00:00 AM | 2022년 4월 7일 오전 7시 00분 00초 |
| 04/14/2022 | 2022년 4월 6일 오전 7시 00분 00초 | 2022년 4월 27일 오전 7시 00분 00초 |
| 06/28/2022 | 2022년 6월 20일 오전 7시 00분 00초 | 2022년 7월 11일 오전 7시 00분 00초 |
| 08/15/2022 | 2022년 8월 7일 오전 7시 00분 00초 | 2022년 8월 28일 오전 7시 00분 00초 |
| 11/16/2022 | 2022년 11월 8일 오전 7시 00분 00초 | 2022년 11월 29일 오전 7시 00분 00초 |
| 01/17/2023 | 1/9/2023 7:00:00 AM | 2023년 1월 30일 오전 7시 00분 00초 |
| 03/22/2023 | 3/14/2023 7:00:00 AM | 4/4/2023 7:00:00 AM |

`daystart()` 함수에 전달된 `day_start` 인수의 값이 7/24였으므로 날짜에는 오전 7:00의 타임스탬프가 있습니다. 이렇게 하면 날짜의 시작이 오전 7:00로 설정됩니다.

`due_date` 필드에 타임스탬프가 없기 때문에 오전 12:00로 처리됩니다. 이는 날짜가 오전 7:00에 시작하고 종료되므로 여전히 전날의 일부입니다. 따라서 2월 11일 벌금에 대한 조기 상환 기간은 2월 3일 오전 7:00부터 시작됩니다.

## 예 4 - 차트 개체 예

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

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

개요

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

이 예에서는 이전 예와 동일한 데이터 집합 및 시나리오를 사용합니다.

그러나 원본 Fines 테이블만 응용 프로그램에 로드되고 두 개의 추가 기한 값이 차트 개체에서 계산됩니다.

로드 스크립트

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

Fines:
    Load
*
Inline 
[
id, due_date, numer_plate,amount
1,02/11/2022 9:25:14 AM, 573RJG,50.00
2,03/25/2022 10:06:54 AM, SC41854,50.00
3,04/14/2022 10:44:42 AM, 8EHZ378,50.00
4,06/28/2022 11:33:30 AM, 8HSS198,50.00
5,08/15/2022 12:58:14 PM, 1221665,50.00
6,11/16/2022 4:23:12 PM, EAK473,50.00
7,01/17/2023 6:42:15 PM, KD6822,50.00
8,03/22/2023 7:41:16 PM, 1GGLB,50.00
];
```

결과

다음과 같이 하십시오.

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

2. early\_repayment\_period 필드를 만들려면 다음 측정값을 만듭니다.

   =daystart(due\_date,-7,7/24)

3. late\_penalty\_period 필드를 만들려면 다음 측정값을 만듭니다.

   =daystart(due\_date,14,7/24)

결과 테이블

| due\_date | =daystart(due\_date,-7,7/24) | =daystart(due\_date,14,7/24) |
| --- | --- | --- |
| 02/11/2022 9:25:14 AM | 2/4/2022 7:00:00 AM | 2/25/2022 7:00:00 AM |
| 03/25/2022 10:06:54 AM | 3/18/2022 7:00:00 AM | 2022년 4월 8일 오전 7:00:00 |
| 2022년 4월 14일 오전 10:44:42 | 2022년 4월 7일 오전 7:00:00 | 2022년 4월 28일 오전 7:00:00 |
| 2022년 6월 28일 오전 11:33:30 | 2022년 6월 21일 오전 7시 | 2022년 7월 12일 오전 7시 |
| 2022년 8월 15일 오후 12시 58분 14초 | 2022년 8월 8일 오전 7시 | 2022년 8월 29일 오전 7시 |
| 2022년 11월 16일 오후 4시 23분 12초 | 2022년 11월 9일 오전 7시 00분 00초 | 2022년 11월 30일 오전 7시 00분 00초 |
| 2023년 1월 17일 오후 6시 42분 15초 | 2023년 1월 10일 오전 7시 00분 00초 | 1/31/2023 7:00:00 AM |
| 03/22/2023 7:41:16 PM | 3/15/2023 7:00:00 AM | 4/5/2023 7:00:00 AM |

새 필드의 값은 TimestampFormat M/D/YYYY h:mm:ss[.fff] TT에 있습니다. daystart() 함수가 사용되었으므로 타임스탬프 값은 해당 날짜의 첫 번째 밀리초에 해당합니다.

조기 상환 기간 값은 daystart() 함수에 전달된 두 번째 인수가 음수였으므로 기한 7일 전입니다.

지연 상환 기간 값은 daystart() 함수에 전달된 두 번째 인수가 양수였으므로 기한 14일 후입니다.

daystart() 함수에 전달된 세 번째 인수의 값 day\_start가 7/24였으므로 날짜에는 오전 7:00의 타임스탬프가 있습니다.