변환 함수
변환 함수 (Conversion functions)
이 문서는 모든 Snowflake 데이터 타입의 표현식을 다른 데이터 타입으로 변환하는 데 사용하는 변환 함수들을 설명해요. 타입별 변환 함수, 오류 처리 버전, 숫자·날짜·이진 형식 지정 방법을 아우릅니다.
본문
이 함수 계열은 모든 Snowflake 데이터 타입의 표현식을 다른 데이터 타입으로 변환하는 데 사용할 수 있어요.
함수 목록 (List of functions)
| 하위 범주 (Sub-category) | 함수 (Function) | 참고 (Notes) |
|---|---|---|
| 모든 데이터 타입 (Any data type) | CAST, :: |
|
TRY_CAST |
CAST의 오류 처리 버전 |
|
| 텍스트/문자/이진 데이터 타입 (Text/character/binary data types) | TO_CHAR, TO_VARCHAR |
|
TO_BINARY |
||
TRY_TO_BINARY |
TO_BINARY의 오류 처리 버전 |
|
| 숫자 데이터 타입 (Numeric data types) | TO_DECFLOAT |
|
TO_DECIMAL, TO_NUMBER, TO_NUMERIC |
||
TO_DOUBLE |
||
TRY_TO_DECFLOAT |
TO_DECFLOAT의 오류 처리 버전 |
|
TRY_TO_DECIMAL, TRY_TO_NUMBER, TRY_TO_NUMERIC |
TO_DECIMAL, TO_NUMBER 등의 오류 처리 버전 |
|
TRY_TO_DOUBLE |
TO_DOUBLE의 오류 처리 버전 |
|
| 부울 데이터 타입 (Boolean data type) | TO_BOOLEAN |
|
TRY_TO_BOOLEAN |
TO_BOOLEAN의 오류 처리 버전 |
|
| 날짜 및 시간 데이터 타입 (Date and time data types) | TO_DATE, DATE |
|
TO_TIME, TIME |
||
TO_TIMESTAMP / TO_TIMESTAMP_* |
||
TRY_TO_DATE |
TO_DATE의 오류 처리 버전 |
|
TRY_TO_TIME |
TO_TIME의 오류 처리 버전 |
|
TRY_TO_TIMESTAMP / TRY_TO_TIMESTAMP_* |
TO_TIMESTAMP 등의 오류 처리 버전 |
|
| 반정형 데이터 타입 (Semi-structured data types) | TO_ARRAY |
|
TO_OBJECT |
||
TO_VARIANT |
||
| 지리공간 데이터 타입 (Geospatial data types) | TO_GEOGRAPHY |
|
TRY_TO_GEOGRAPHY |
TO_GEOGRAPHY의 오류 처리 버전 |
|
ST_GEOGFROMGEOHASH |
||
ST_GEOGPOINTFROMGEOHASH |
||
ST_GEOGRAPHYFROMWKB |
||
ST_GEOGRAPHYFROMWKT |
||
TO_GEOMETRY |
||
TRY_TO_GEOMETRY |
TO_GEOMETRY의 오류 처리 버전 |
|
ST_GEOMETRYFROMWKB |
||
ST_GEOMETRYFROMWKT |
오류 처리 변환 함수 (Error-handling conversion functions)
TRY_ 접두사가 붙은 변환 함수는 각각 해당 변환 함수의 특수 버전이에요. 이 함수들은 변환을 수행할 수 없을 때 오류를 발생시키는 대신 NULL 값을 반환합니다:
TRY_CASTTRY_TO_BINARYTRY_TO_BOOLEANTRY_TO_DATETRY_TO_DECIMAL,TRY_TO_NUMBER,TRY_TO_NUMERICTRY_TO_DOUBLETRY_TO_GEOGRAPHYTRY_TO_GEOMETRYTRY_TO_TIMETRY_TO_TIMESTAMP / TRY_TO_TIMESTAMP_*
이 함수들은 입력으로 문자열 표현식(즉 VARCHAR 또는 CHAR 데이터 타입)만 지원해요.
중요: 이 오류 처리 변환 함수는 변환 오류가 상대적으로 드문 상황에 맞춰 최적화되어 있어요:
- 오류가 없거나 아주 적다면 눈에 띄는 성능 영향이 없어야 해요.
- 변환 실패가 많으면 이 함수들을 사용하면 성능이 크게 저하될 수 있어요. 또한
VARIANT타입과 함께 사용할 때 일부 연산에서 성능이 저하될 수 있어요.
변환 함수의 숫자 형식 (Numeric formats in conversion functions)
TO_DECIMAL, TO_NUMBER, TO_NUMERIC, TO_DOUBLE 함수는 입력 표현식이 문자열로 평가되는 경우 입력 문자열의 형식을 지정하는 선택적 파라미터를 받아요. 이 파라미터가 가질 수 있는 값에 대한 자세한 내용은 SQL 형식 모델(SQL format models) 문서를 참고하세요.
변환 함수의 날짜 및 시간 형식 (Date and time formats in conversion functions)
다음 함수들을 사용하면 문자열을 파싱하거나 생성할 때 기대하는 날짜, 시간, 타임스탬프 형식을 지정할 수 있어요:
TO_CHAR,TO_VARCHARTO_DATE,DATETRY_TO_DATETO_TIME,TIMETRY_TO_TIMETO_TIMESTAMP / TO_TIMESTAMP_*TRY_TO_TIMESTAMP / TRY_TO_TIMESTAMP_*
선택적 인자에서 다음의 대소문자를 구분하지 않는 요소로 형식을 지정합니다:
| 형식 요소 (Format element) | 설명 (Description) |
|---|---|
YYYY |
네 자리 [1] 연도 |
YY |
두 자리 [1] 연도. TWO_DIGIT_CENTURY_START 세션 파라미터로 제어. 예를 들어 1980으로 설정하면 79와 80은 각각 2079와 1980으로 파싱됨 |
Y |
앞에 0이 없는 한 자리 또는 두 자리 [2] 연도. TWO_DIGIT_CENTURY_START 세션 파라미터로 제어. 예: 파라미터가 1990으로 설정되면 2005와 1991은 각각 5와 91로 직렬화됨 |
MM |
두 자리 [1] 월 (01 = 1월 등) |
MO |
앞에 0이 없는 한 자리 또는 두 자리 [2] 월 (1 = 1월 등) |
MON |
축약된 월 이름 [3] |
MMMM |
전체 월 이름 [3] |
DD |
두 자리 [1] 일 (01 ~ 31) |
D |
앞에 0이 없는 한 자리 또는 두 자리 [2] 일 (1 ~ 31) |
DY |
축약된 요일 이름 |
HH24 |
두 자리 [1] 시간 (00 ~ 23). AM/PM 또는 A/P를 지정하면 안 됨 |
HH12 |
두 자리 [1] 시간 (01 ~ 12). AM/PM 또는 A/P를 지정할 수 있음 |
H24 |
앞에 0이 없는 한 자리 또는 두 자리 [2] 시간 (0 ~ 23). AM/PM 또는 A/P를 지정하면 안 됨 |
H12 |
앞에 0이 없는 한 자리 또는 두 자리 [2] 시간 (1 ~ 12). AM/PM 또는 A/P를 지정할 수 있음 |
AM, PM |
오전(AM) / 오후(PM). HH12와 H12에서만 사용. (HH24나 H24에는 사용 안 함) |
P |
오전(A) / 오후(P). HH12와 H12에서만 사용. (HH24나 H24에는 사용 안 함) |
HH |
HH24의 동의어 |
H |
H24의 동의어 |
MI |
두 자리 [1] 분 (00 ~ 59) |
ME |
앞에 0이 없는 한 자리 또는 두 자리 [2] 분 (0 ~ 59) |
SS |
두 자리 [1] 초 (00 ~ 59) |
S |
앞에 0이 없는 한 자리 또는 두 자리 [2] 초 (0 ~ 59) |
FF[0-9] |
정밀도 0(초)부터 9(나노초)까지의 분수 초. 예: FF, FF0, FF3, FF9. FF는 FF9(나노초)와 동일 |
TZH:TZM, TZHTZM, TZH |
두 자리 [1] 시간대 시/분, UTC로부터의 오프셋. 부호로 +/-를 붙일 수 있음 |
UUUU |
ISO 형식의 네 자리 연도. BCE 연도에는 음수 |
[1] 자릿수는 값을 텍스트로 직렬화할 때 생성되는 출력을 설명해요. 텍스트를 파싱할 때 Snowflake는 지정된 자릿수까지 허용해요. 예를 들어 일 번호는 한 자리 또는 두 자리일 수 있어요.
[2] 자릿수는 값을 텍스트로 직렬화할 때 생성되는 출력을 설명해요: 값은 앞에 0 없이 직렬화돼요. 텍스트를 파싱할 때 Snowflake는 한 자리 또는 두 자리를 허용해요.
[3] MON 형식 요소의 경우 값을 텍스트로 직렬화할 때 생성되는 출력은 축약된 월 이름이에요. MMMM 형식 요소의 경우 출력은 전체 월 이름이에요. 텍스트를 파싱할 때 Snowflake는 MON과 MMMM 모두에 대해 세 글자 축약형 또는 전체 월 이름을 허용해요. 예를 들어 "January" 또는 "Jan", "February" 또는 "Feb" 등이 허용돼요.
참고
- 날짜만 있는 형식을 사용하면 연관된 시간은 그날 자정으로 간주돼요.
- 형식에서 큰따옴표 사이에 있거나 위 요소 외에 있는 것은 해석되지 않고 파싱/형식화돼요. Snowflake는 리터럴 문자를 항상 큰따옴표로 감싸도록 권장합니다(예:
"T","EST","Z"). 이렇게 하면 리터럴로 취급돼요. - 유효한 범위, 자릿수, 모범 사례에 대한 자세한 내용은 날짜, 시간, 타임스탬프 형식 사용에 대한 추가 정보(Additional information about using date, time, and timestamp formats) 문서를 참고하세요.
예시 (Examples)
지정된 입력 형식 dd/mm/yyyy를 사용해 문자열을 날짜로 변환합니다. 출력의 날짜 표시 형식은 DATE_OUTPUT_FORMAT 세션 파라미터(기본 YYYY-MM-DD)로 결정돼요.
SELECT TO_DATE('3/4/2024', 'dd/mm/yyyy');
+-----------------------------------+
| TO_DATE('3/4/2024', 'DD/MM/YYYY') |
|-----------------------------------|
| 2024-04-03 |
+-----------------------------------+
날짜를 문자열로 변환하고 mon dd, yyyy의 날짜 출력 형식을 지정합니다.
SELECT TO_VARCHAR('2024-04-05'::DATE, 'mon dd, yyyy');
+------------------------------------------------+
| TO_VARCHAR('2024-04-05'::DATE, 'MON DD, YYYY') |
|------------------------------------------------|
| Apr 05, 2024 |
+------------------------------------------------+
변환 함수의 이진 형식 (Binary formats in conversion functions)
TO_CHAR, TO_VARCHAR, TO_BINARY는 문자열을 파싱하거나 생성할 때 기대하는 형식을 지정하는 선택적 인자를 받아요. 형식은 다음 문자열 중 하나일 수 있어요(대소문자 구분 없음):
HEXBASE64UTF-8
이 형식들에 대한 자세한 내용은 지원되는 이진 형식 개요(Overview of supported binary formats) 문서를 참고하세요. 이 형식들의 사용 예시는 이진 입출력(Binary input and output) 문서의 Examples 섹션을 참고하세요.
더 알아보기 (Learn more)
- 스칼라 함수 (functions)
- 날짜 및 시간 함수 (functions-date-time)
- 컨텍스트 함수 (functions-context)
- 집계 함수 (functions-aggregation)