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

이 예에서는 타임스탬프 형식 `'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를 반환합니다. |

## 국가별 설정

달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다. YYYY/MM/DD. 날짜 형식은 데이터 로드 스크립트의 `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/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\_timestamp |
| --- | --- |
| 03/11/2022 1:47:15 AM | 3/11/2022 12:00:00 AM |
| 03/12/2022 4:34:58 AM | 3/12/2022 12:00:00 AM |
| 03/13/2022 5:15:55 AM | 3/13/2022 12:00:00 AM |
| 03/14/2022 9:25:14 AM | 3/14/2022 12:00:00 AM |
| 03/15/2022 10:06:54 AM | 3/15/2022 12:00:00 AM |
| 03/16/2022 10:44:42 AM | 3/16/2022 12:00:00 AM |
| 03/17/2022 11:33:30 AM | 3/17/2022 12:00:00 AM |
| 03/18/2022 12:58:14 PM | 3/18/2022 12:00:00 AM |
| 03/19/2022 4:23:12 PM | 3/19/2022 12:00:00 AM |
| 03/20/2022 6:42:15 PM | 3/20/2022 12:00:00 AM |
| 03/21/2022 7:41:16 PM | 3/21/2022 12:00:00 AM |

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

## 예 2 – period\_no

[](https://help.qlik.com/en-US/sense/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`

결과 테이블

| due\_date | early\_repayment\_period | late\_penalty\_period |
| --- | --- | --- |
| 02/11/2022 9:25:14 AM | 2/4/2022 12:00:00 AM | 2/25/2022 12:00:00 AM |
| 03/25/2022 10:06:54 AM | 3/18/2022 12:00:00 AM | 4/8/2022 12:00:00 AM |
| 04/14/2022 10:44:42 AM | 4/7/2022 12:00:00 AM | 4/28/2022 12:00:00 AM |
| 06/28/2022 11:33:30 AM | 6/21/2022 12:00:00 AM | 7/12/2022 12:00:00 AM |
| 08/15/2022 12:58:14 PM | 8/8/2022 12:00:00 AM | 8/29/2022 12:00:00 AM |
| 11/16/2022 4:23:12 PM | 11/9/2022 12:00:00 AM | 11/30/2022 12:00:00 AM |
| 01/17/2023 6:42:15 PM | 1/10/2023 12:00:00 AM | 1/31/2023 12:00:00 AM |
| 03/22/2023 7:41:16 PM | 3/15/2023 12:00:00 AM | 4/5/2023 12:00:00 AM |

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

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

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

## 예 3 – day\_start

[](https://help.qlik.com/en-US/sense/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`

결과 테이블

| 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 | 4/7/2022 7:00:00 AM |
| 04/14/2022 | 4/6/2022 7:00:00 AM | 4/27/2022 7:00:00 AM |
| 06/28/2022 | 6/20/2022 7:00:00 AM | 7/11/2022 7:00:00 AM |
| 08/15/2022 | 8/7/2022 7:00:00 AM | 8/28/2022 7:00:00 AM |
| 11/16/2022 | 11/8/2022 7:00:00 AM | 11/29/2022 7:00:00 AM |
| 01/17/2023 | 1/9/2023 7:00:00 AM | 1/30/2023 7:00:00 AM |
| 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/sense/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 | 4/8/2022 7:00:00 AM |
| 04/14/2022 10:44:42 AM | 4/7/2022 7:00:00 AM | 4/28/2022 7:00:00 AM |
| 06/28/2022 11:33:30 AM | 6/21/2022 7:00:00 AM | 7/12/2022 7:00:00 AM |
| 08/15/2022 12:58:14 PM | 8/8/2022 7:00:00 AM | 8/29/2022 7:00:00 AM |
| 11/16/2022 4:23:12 PM | 11/9/2022 7:00:00 AM | 11/30/2022 7:00:00 AM |
| 01/17/2023 6:42:15 PM | 1/10/2023 7:00:00 AM | 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의 타임스탬프가 있습니다.