# maketime 스크립트 및 차트 함수

이 함수는 시간 hh, 분 mm, 초 ss에서 계산한 시간을 반환합니다.

구문:

MakeTime(hh [ , mm [ , ss ] ])

반환 데이터 유형: 이중

인수

| 인수 | 설명 |
| --- | --- |
| hh | 시간은 정수입니다. |
| mm | 분은 정수입니다.<br><br>분을 지정하지 않으면 00으로 가정됩니다. |
| ss | 초는 정수입니다.<br><br>초를 지정하지 않으면 00으로 가정됩니다. |

## 사용 시기

`maketime()` 함수는 일반적으로 데이터 생성을 위한 스크립트에서 시간 필드를 생성하는 데 사용됩니다. 때때로 시간 필드가 입력 텍스트에서 파생되는 경우 이 함수를 사용해 해당 구성 요소를 사용하여 시간을 구성할 수 있습니다.

이 예에서는 `h:mm:ss` 시간 서식을 사용합니다. 시간 형식은 데이터 로드 스크립트 상단의 `SET TimeFormat`문에 지정되어 있습니다. 요구 사항에 맞게 예의 형식을 변경하십시오.

함수 예

| 예제 | 결과 |
| --- | --- |
| `maketime(22)` | 22:00:00을 반환합니다. |
| `maketime(22, 17)` | 22:17:00을 반환합니다. |
| `maketime(22,17,52 )` | 22:17:52을 반환합니다. |

## 국가별 설정

달리 지정하지 않는 한 이 항목의 예에서는 다음 날짜 형식을 사용합니다: MM/DD/YYYY.날짜 형식은 데이터 로드 스크립트의 `SET DateFormat` 문에 지정됩니다.기본 날짜 형식은 지역 설정 및 기타 요인으로 인해 시스템에서 다를 수 있습니다.아래 예의 형식을 요구 사항에 맞게 변경할 수 있습니다.또는 이러한 예와 일치하도록 로드 스크립트의 형식을 변경할 수 있습니다.

앱의 기본 국가별 설정은 Qlik Sense가 설치된 컴퓨터 또는 서버의 국가별 시스템 설정을 기반으로 합니다.액세스하는 Qlik Sense 서버가 스웨덴으로 설정된 경우, 데이터 로드 편집기는 날짜, 시간 및 통화에 대해 스웨덴 지역 설정을 사용합니다.이러한 국가별 형식 설정은 Qlik Sense 사용자 인터페이스에 표시되는 언어와 관련이 없습니다. Qlik Sense은(는) 사용 중인 브라우저와 동일한 언어로 표시됩니다.

## 예 1 – maketime()

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

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

개요

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

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

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

* 3개 필드에 걸쳐 제공되는 트랜잭션 시간: `hours`, `minutes` 및 `seconds`.

* `TimeFormat` 시스템 변수 서식으로 시간을 반환하는 `transaction_time` 필드 만들기.

로드 스크립트

```
SET TimeFormat='h:mm:ss TT';

Transactions:
    Load
        *,
        maketime(transaction_hour, transaction_minute, transaction_second) as transaction_time
        ; 
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_second, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 30, 12423.56, 23, 2038593
3751, 6, 32, 07, 5356.31, 6, 203521
3752, 12, 09, 16, 15.75, 1, 5646471
3753, 21, 43, 41, 7, 3036491
3754, 17, 55, 22, 21484.21, 1356, 049681
3756, 2, 52, 22, -59.18, 2, 2038593
3757, 9, 25, 23, 3177.4, 21, 203521
];
```

결과

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

* `transaction_hour`

* `transaction_minute`

* `transaction_second`

* `transaction_time`

결과 테이블

| 거래 시간 | 거래 분 | 트랜잭션\_초 | 트랜잭션\_시간 |
| --- | --- | --- | --- |
| 2 | 52 | 22 | 2:52:22 AM |
| 6 | 32 | 07 | 6:32:07 AM |
| 9 | 25 | 23 | 9:25:23 AM |
| 12 | 09 | 16 | 12:09:16 PM |
| 17 | 55 | 22 | 5:55:22 PM |
| 18 | 43 | 30 | 6:43:30 PM |
| 21 | 43 | 41 | 9:43:41 PM |

`transaction_time` 필드는 `maketime()` 함수를 사용하고 시, 분 및 초 필드를 함수 인수로 전달하여 선행 LOAD 문에서 만들어집니다.

그런 다음 함수는 이러한 값을 결합하고 시간 필드로 변환하여 `TimeFormat` 시스템 변수의 시간 서식으로 결과를 반환합니다.

## 예 2 – time() 함수

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

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

개요

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

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

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

* `TimeFormat` 시스템 변수를 수정하지 않고 결과를 24시간 서식으로 표시하도록 하는 필드 `transaction_time` 만들기.

로드 스크립트

```
SET TimeFormat='h:mm:ss TT';

Transactions:
    Load
        *,
        time(maketime(transaction_hour, transaction_minute, transaction_second),'h:mm:ss') as transaction_time
        ; 
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_second, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 30, 12423.56, 23, 2038593
3751, 6, 32, 07, 5356.31, 6, 203521
3752, 12, 09, 16, 15.75, 1, 5646471
3753, 21, 43, 41, 7, 3036491
3754, 17, 55, 22, 21484.21, 1356, 049681
3756, 2, 52, 22, -59.18, 2, 2038593
3757, 9, 25, 23, 3177.4, 21, 203521
];
```

결과

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

* `transaction_hour`

* `transaction_minute`

* `transaction_second`

* `transaction_time`

결과 테이블

| 거래 시간 | 거래 분 | 트랜잭션\_초 | 트랜잭션\_시간 |
| --- | --- | --- | --- |
| 2 | 52 | 22 | 2:52:22 |
| 6 | 32 | 07 | 6:32:07 |
| 9 | 25 | 23 | 9:25:23 |
| 12 | 09 | 16 | 12:09:16 |
| 17 | 55 | 22 | 17:55:22 |
| 18 | 43 | 30 | 18:43:30 |
| 21 | 43 | 41 | 21:43:41 |

이 경우 `maketime()` 함수는 `time()` 함수 내부에 중첩됩니다. `time()` 함수의 두 번째 인수는 `maketime()` 함수 결과의 서식을 필수 `h:mm:ss`로 설정합니다.

## 예 3 – 차트 개체 예

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

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

개요

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

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

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

* 두 필드에 걸쳐 제공되는 트랜잭션 시간: `hours` 및 `minutes`.

* `TimeFormat` 시스템 변수 서식으로 시간을 반환하는 필드 `transaction_time` 만들기.

`h:mm:ss TT` 서식으로 시간을 반환하는 차트 개체 측정값 `transaction_time`을 만듭니다.

로드 스크립트

```
SET TimeFormat='h:mm:ss TT';

Transactions:
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 12423.56, 23, 2038593
3751, 6, 32, 5356.31, 6, 203521
3752, 12, 09, 15.75, 1, 5646471
3753, 21, 43, 7, 3036491
3754, 17, 55, 21484.21, 1356, 049681
3756, 2, 52, -59.18, 2, 2038593
3757, 9, 25, 3177.4, 21, 203521
];
```

결과

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

* `transaction_hour`

* `transaction_minute`

`transaction_time`을 계산하려면 다음 측정값을 만듭니다.

`=maketime(transaction_hour,transaction_minute)`

결과 테이블

| 거래 시간 | 거래 분 | =maketime(거래\_시간, 거래\_분) |
| --- | --- | --- |
| 2 | 52 | 2:52:00 AM |
| 6 | 32 | 6:32:00 AM |
| 9 | 25 | 9:25:00 AM |
| 12 | 09 | 12:09:00 PM |
| 17 | 55 | 5:55:00 PM |
| 18 | 43 | 오후 6:43:00 |
| 21 | 43 | 오후 9시 43분 00초 |

`transaction_time` 측정값은 `maketime()` 함수를 사용하고 시간 및 분 필드를 함수 인수로 전달하여 차트 개체에서 만들어집니다.

그런 다음 이 함수는 이러한 값을 결합하고 초는 00으로 가정합니다. 이러한 값은 시간 필드로 변환되어 `TimeFormat` 시스템 변수 형식으로 결과를 반환합니다.

## 예 4 – 시나리오

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

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

개요

2022년 1월의 캘린더 데이터 집합을 8시간 단위로 나누어 만듭니다.

로드 스크립트

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

tmpCalendar:
	load 
		*
    where year(date)=2022;
load
	date(recno()+makedate(2021,12,31)) as date
AutoGenerate 31;

Left join(tmpCalendar)
load
	maketime((recno()-1)*8,00,00) as time
autogenerate 3;

Calendar:
load
	timestamp(date + time) as timestamp
resident tmpCalendar;

drop table tmpCalendar;
```

결과

결과 테이블

| 타임스탬프 |
| --- |
| 1/1/2022 12:00:00 AM |
| 2022년 1월 1일 오전 8시 00분 00초 |
| 2022년 1월 1일 오후 4시 00분 00초 |
| 2022년 1월 2일 오전 12시 00분 00초 |
| 2022년 1월 2일 오전 8시 00분 00초 |
| 2022년 1월 2일 오후 4시 00분 00초 |
| 2022년 1월 3일 오전 12:00:00 |
| 2022년 1월 3일 오전 8:00:00 |
| 2022년 1월 3일 오후 4:00:00 |
| 2022년 1월 4일 오전 12:00:00 |
| 2022년 1월 4일 오전 8:00:00 |
| 2022년 1월 4일 오후 4:00:00 |
| 2022년 1월 5일 오전 12:00:00 |
| 2022년 1월 5일 오전 8:00:00 |
| 2022년 1월 5일 오후 4:00:00 |
| 2022년 1월 6일 오전 12:00:00 |
| 2022년 1월 6일 오전 8:00:00 |
| 2022년 1월 6일 오후 4:00:00 |
| 2022년 1월 7일 오전 12:00:00 |
| 2022년 1월 7일 오전 8:00:00 |
| 2022년 1월 7일 오후 4:00:00 |
| 2022년 1월 8일 오전 12시 00분 00초 |
| 2022년 1월 8일 오전 8시 00분 00초 |
| 2022년 1월 8일 오후 4시 00분 00초 |
| 2022년 1월 9일 오전 12시 00분 00초 |
| + 68 추가 행 |

초기 autogenerate 함수는 tmpCalendar라는 테이블에 1월의 모든 날짜를 포함하는 캘린더를 만듭니다.

세 개의 레코드가 포함된 두 번째 테이블이 만들어집니다. 각 레코드에 대해 recno() – 1을 수행한 결과(값 0, 1, 2)에 8을 곱합니다. 결과적으로 값 0, 8 16이 생성됩니다. 이러한 값은 분 및 초 값이 0인 maketime() 함수에서 시간 매개 변수로 사용됩니다. 결과적으로 테이블에는 오전 12:00:00, 오전 8:00:00 및 오후 4:00:00의 세 가지 시간 필드가 포함됩니다.

이 테이블은 tmpCalendar 테이블에 조인됩니다. 이 조인의 경우 두 테이블 간에 일치하는 필드가 없으므로 시간 행이 각 날짜 행에 추가됩니다. 결과적으로 각 날짜 행은 이제 각 시간 값으로 세 번 반복됩니다.

마지막으로 tmpCalendar 테이블의 Resident LOAD에서 Calendar 테이블이 만들어집니다. 날짜 및 시간 필드는 연결되고 timestamp() 함수로 래핑되어 타임스탬프 필드를 만듭니다.

그런 다음 tmpCalendar 테이블이 삭제됩니다.