- 카테고리:
TO_TIME , TIME¶
입력 식을 시간으로 변환합니다.
- 참고 항목:
구문¶
TO_TIME( <string_expr> [, <format> ] )
TO_TIME( <timestamp_expr> )
TO_TIME( '<integer>' )
TO_TIME( <variant_expr> )
TIME( <string_expr> )
TIME( <timestamp_expr> )
TIME( '<integer>' )
TIME( <variant_expr> )
인자¶
필수:
string_expr
또는timestamp_expr
또는'integer'
또는variant_expr
시간으로 변환할 식:
string_expr
의 경우 시간으로 변환할 문자열입니다.timestamp_expr
의 경우 시간으로 변환할 타임스탬프입니다. 이 함수는 입력 값의 시간 부분을 반환합니다.'integer'
의 경우 시간으로 변환할 정수가 포함된 문자열입니다. 정수는 Unix epoch 시작 후의 초, 밀리초, 마이크로초 또는 나노초 단위 수로 처리됩니다. 사용법 노트 를 참조하십시오.이 타임스탬프의 경우 함수는 Unix epoch 시작 후의 시간(초)을 가져옵니다. 이 함수는 모듈로 연산 을 수행하여 이 숫자를 하루의 초 수(
86400
)로 나눈 나머지를 구합니다.number_of_seconds % 86400
함수는 이 나머지를 자정 이후의 초 수로 해석합니다.
예를 들어 값이
'31536002789'
라고 가정하겠습니다.이 값의 크기를 기준으로, 함수는 밀리초를 시간 단위로 사용하고 값이
1971-01-01 00:00:02.789
를 나타내는지 확인합니다.함수는 이 값(
31536002
)에 대한 Unix epoch 이후의 초 수를 구합니다.함수는 그 숫자를 하루의 초 수로 나눈 나머지(
31536002 % 86400
)를 구합니다.함수는 나머지(
2
)를 자정 이후의 초 수로 사용합니다. 결과 값은00:00:02
입니다.
variant_expr
의 경우:VARIANT에 TIME 형식(예:
HH:MI:SS
)의 문자열이 포함된 경우, 문자열 변환이 수행됩니다.VARIANT에 INTEGER 형식의 문자열이 포함된 경우, 문자열 변환이 수행되고 값은 자정(필요한 경우 모듈러스 86400) 이후의 초 단위 수로 처리됩니다.
VARIANT JSON Null 값이 포함된 경우 출력은 NULL입니다.
다른 모든 값의 경우, 변환 오류가 생성됩니다.
선택 사항:
format
string_expr
또는 AUTO 에 대한 시간 형식 지정자이며, 이는 사용할 형식을 Snowflake가 자동으로 감지하도록 지정합니다. 자세한 내용은 변환 함수의 날짜 및 시간 형식 섹션을 참조하십시오.기본값: TIME_INPUT_FORMAT 세션 매개 변수의 현재 값(기본값 AUTO)
반환¶
반환된 값의 데이터 타입은 TIME입니다. 입력이 NULL인 경우, NULL을 반환합니다.
사용법 노트¶
출력에서 시간의 표시 형식은 TIME_OUTPUT_FORMAT 세션 매개 변수(기본값
HH24:MI:SS
)에 의해 결정됩니다.입력 매개 변수의 형식이 정수를 포함한 문자열인 경우 값의 측정 단위(초, 마이크로초, 밀리초 또는 나노초)는 다음과 같이 결정됩니다.
문자열이 정수로 변환된 후 정수는 Unix epoch(1970-01-01 00:00:00.000000000 UTC) 시작 후의 초, 밀리초, 마이크로초 또는 나노초 단위 수로 처리됩니다.
정수가 31536000000(1년의 밀리초 단위 수) 미만인 경우, 값은 초 단위 수로 처리됩니다.
값이 31536000000 이상이고 31536000000000 미만인 경우, 값은 밀리초로 처리됩니다.
값이 31536000000000 이상이고 31536000000000000 미만인 경우, 값은 마이크로초로 처리됩니다.
값이 31536000000000000보다 큰 경우, 값은 나노초로 처리됩니다.
둘 이상의 행이 평가되는 경우(예: 입력이 둘 이상의 행을 포함하는 테이블의 열 이름인 경우), 각각의 값을 독립적으로 검사해 값이 초, 밀리초, 마이크로초 또는 나노초를 나타내는지 확인합니다.
TO_TIME 함수와 달리 TIME 함수는 선택적
format
매개 변수를 지원하지 않습니다.
예¶
이러한 예제에서는 TO_TIME 및 TIME 함수를 사용합니다.
SELECT TO_TIME('13:30:00'), TIME('13:30:00');
+---------------------+------------------+
| TO_TIME('13:30:00') | TIME('13:30:00') |
|---------------------+------------------|
| 13:30:00 | 13:30:00 |
+---------------------+------------------+
SELECT TO_TIME('13:30:00.000'), TIME('13:30:00.000');
+-------------------------+----------------------+
| TO_TIME('13:30:00.000') | TIME('13:30:00.000') |
|-------------------------+----------------------|
| 13:30:00 | 13:30:00 |
+-------------------------+----------------------+
이 예제에서는 TO_TIME 함수를 사용하여 기본 콜론 이외의 필드 구분 기호를 처리하는 방법을 보여줍니다. 이 예에서는 시간과 분, 분과 초를 구분하는 구분 기호로 마침표 문자를 사용합니다.
SELECT TO_TIME('11.15.00', 'HH24.MI.SS');
+-----------------------------------+
| TO_TIME('11.15.00', 'HH24.MI.SS') |
|-----------------------------------|
| 11:15:00 |
+-----------------------------------+
이 예제에서는 TO_TIME 함수가 정수가 포함된 문자열을 해석하는 방법을 보여줍니다.
CREATE OR REPLACE TABLE demo1_time (
description VARCHAR,
value VARCHAR -- string rather than bigint
);
INSERT INTO demo1_time (description, value) VALUES
('Seconds', '31536001'),
('Milliseconds', '31536002400'),
('Microseconds', '31536003600000'),
('Nanoseconds', '31536004900000000');
SELECT description,
value,
TO_TIMESTAMP(value),
TO_TIME(value)
FROM demo1_time
ORDER BY value;
+--------------+-------------------+-------------------------+----------------+
| DESCRIPTION | VALUE | TO_TIMESTAMP(VALUE) | TO_TIME(VALUE) |
|--------------+-------------------+-------------------------+----------------|
| Seconds | 31536001 | 1971-01-01 00:00:01.000 | 00:00:01 |
| Milliseconds | 31536002400 | 1971-01-01 00:00:02.400 | 00:00:02 |
| Microseconds | 31536003600000 | 1971-01-01 00:00:03.600 | 00:00:03 |
| Nanoseconds | 31536004900000000 | 1971-01-01 00:00:04.900 | 00:00:04 |
+--------------+-------------------+-------------------------+----------------+