적용 대상:yes Databricks Runtime 18.1 이상으로 ![]()
문자열인 경우 expr 지정된 형식 목록에서 일치하는 첫 번째 패턴에 따라 구문 분석 TIMESTAMP 합니다. 하나 이상의 형식이 미리 정의된 형식 목록을 참조할 수 있습니다. 숫자 형식인 경우 expr Unix 타임스탬프로 구문 분석합니다.
문법
parse_timestamp(expr [, { pattern [...] } ])
Arguments
-
expr: 로 구문 분석할 문자열 또는 숫자 값입니다
TIMESTAMP. 허용되는 형식은 다음과 같습니다.-
TINYINT,SMALLINT, ,INT,BIGINT -
FLOAT,DOUBLE -
DECIMAL(최대 18개 정밀도) STRING
-
-
패턴: 타임스탬프 패턴의 선택적 목록 또는 미리 정의된 목록(예:
#iso8601또는#rfc3339.)에 대한 참조입니다. 타임스탬프 패턴은 상수 문자열이어야 합니다. 지정한 패턴이 없으면 지정하는#extended것과 같습니다.
Returns
TIMESTAMP 구문 분석된 expr.
expr 문자열인 경우 첫 번째 일치 패턴에 따라 구문 분석됩니다. 일치하는 패턴이 없으면 함수에서 오류가 발생합니다.
expr 숫자인 경우 항상 Unix 타임스탬프로 구문 분석됩니다.
expr이 NULL 경우, 함수는 NULL를 반환합니다.
구문 분석이 실패할 때 오류 대신 반환 NULL 하려면 함수를 사용합니다try_parse_timestamp.
Notes
- 패턴 목록에 값이
NULL포함되어 있으면 무시됩니다. 제공된 모든 패턴이NULL면 결과는 .입니다NULL. - 타임스탬프가 표준 시간대 정보가 없는 패턴과 일치하면 세션 표준 시간대에서 구문 분석됩니다.
오류 조건
- CANNOT_PARSE_TIMESTAMP
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- INVALID_PARAMETER_VALUE. 패턴
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
예제
-- Parse timestamp according to default pattern list
> SELECT parse_timestamp('2024-12-09T19:30:01');
2024-12-09 19:30:01.000
-- Parse a microsecond epoch timestamp using the unix pattern list
> SELECT parse_timestamp('1733772601000000', '#unix');
2024-12-09 19:30:01.000
-- Bad `expr` that does not match any pattern
> SELECT parse_timestamp('bad input');
Error: CANNOT_PARSE_TIMESTAMP
-- Use try_parse_timestamp to return NULL instead of error
> SELECT try_parse_timestamp('bad input');
NULL
-- Extend the default pattern list with custom patterns
> SELECT parse_timestamp(col, "#extended", "dd MMM, yyyy", "MMM d; yy") FROM VALUES ('2024-12-01'), ('02 Dec, 2024'), ('DEC 3; 24') AS t(col)
2024-12-01 00:00:00.000
2024-12-02 00:00:00.000
2024-12-03 00:00:00.000
패턴 참조
parse_timestamp및 try_parse_timestamp 함수는 .에서 사용하는 to_timestamp표준 datetime 패턴과 몇 가지 다른 패턴 집합을 사용합니다. 다음 표에서는 모든 패턴 기호와 각 기호가 지원되는지 여부를 나열합니다.
| 기호 | Meaning | 예제 | 지원 |
|---|---|---|---|
| U | 유닉스 | 아래 참고 사항 참조 | 지원됨 |
| G | 시대 | 광고; 안노 도미니 | 지원되지 않음 |
| y | 연도 | 2020; 20 | 지원됨 |
| D | 연중 일수 | 189 | 지원되지 않음 |
| M/L | 연간 월 | 7; 07; 7월; 7월 | 지원됨 |
| d | 일자 | 28 | 지원됨 |
| Q/q | 연간 사분기 | 3; 03; Q3; 3분기 | 지원되지 않음 |
| E | 요일 | 화; 화요일 | 지원됨 |
| F | 매월 정렬된 요일 | 3 | 지원되지 않음 |
| 오전 | 오전-오후 | 오후 시간 | 지원됨 |
| 시간 | 오전/오후 시간 표시(1~12) | 12 | 지원됨 |
| K | 오전/오후 시간 (0-11시) | 0 | 지원됨 |
| k | 하루 중 시계 시간(1~24) | 1 | 지원되지 않음 |
| H | 하루 중 시간(0-23) | 0 | 지원됨 |
| m | 분/시간 | 30 | 지원됨 |
| s | 초/분 | 55 | 지원됨 |
| S | 초 단위의 소수 | 978 | 지원됨 |
| V | 시간대 ID | America/Los_Angeles; Z; -08:30 | 지원됨 |
| z | 표준 시간대 이름 | 태평양 표준시; PST | 지원됨 |
| O | 지역화된 영역 오프셋 | GMT+8; GMT+08:00; UTC-08:00 | 지원됨 |
| X | 0에 대한 영역 오프셋 'Z' | Z; -08; -0830; -08:30 | 지원됨(1-3자리) |
| x | 영역 오프셋 | +0000; -08; -0830; -08:30 | 지원됨(1-3자리) |
| Z | 영역 오프셋 | +0000; -0800; -08:00 | 지원됨 |
| # | 패턴 목록 | #common, #iso8601 | 지원됨 |
메모
Unix 패턴(U):#unix 패턴 목록은 Unix epoch 타임스탬프를 구문 분석합니다. 1971-08-03에서 3554-06-09 사이의 날짜의 경우 구현은 Unix 타임스탬프를 몇 초, 마이크로초 및 나노초 단위로 구분하고 구문 분석할 수 있습니다. 해당 범위를 벗어난 날짜가 잘못 구문 분석되거나 구문 분석되지 않을 수 있습니다. 음수 정수는 지원되지 않습니다. 소수 자릿수 값은 최대 9개의 소수 자릿수까지 지원되며 결과 형식의 전체 자릿수와 일치하도록 잘립니다.
로캘: 패턴 자리 표시자는 로캘을 인식하지 않습니다. 월 및 일 이름은 영어로만 지원됩니다.
패턴 목록
미리 정의된 패턴 목록을 이름으로 전달할 수 있습니다(예: <
- common - 표준에 의해 정의되지 않은 일반적으로 발견되는 패턴
- iso8601
- rfc1036, rfc1123, rfc2822, rfc3164, rfc3339, rfc4287, rfc5322, rfc5424, rfc6265, rfc7231, rfc822, rfc850, rfc9110, rfc9557
- unix - Unix epoch 타임스탬프만
- extended — 위의 모든 목록의 공용 구조체; 또한 패턴이 지정되지 않은 경우의 기본값입니다.
- extended-dmy - DMY 로캘 관련 형식으로 확장
- extended-mdy - MDY 로캘 관련 형식으로 확장