변환 함수

변환 함수 (Conversion functions)

이 문서는 모든 Snowflake 데이터 타입의 표현식을 다른 데이터 타입으로 변환하는 데 사용하는 변환 함수들을 설명해요. 타입별 변환 함수, 오류 처리 버전, 숫자·날짜·이진 형식 지정 방법을 아우릅니다.

출처: Snowflake SQL Reference

본문

이 함수 계열은 모든 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_CAST
  • TRY_TO_BINARY
  • TRY_TO_BOOLEAN
  • TRY_TO_DATE
  • TRY_TO_DECIMAL, TRY_TO_NUMBER, TRY_TO_NUMERIC
  • TRY_TO_DOUBLE
  • TRY_TO_GEOGRAPHY
  • TRY_TO_GEOMETRY
  • TRY_TO_TIME
  • TRY_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_VARCHAR
  • TO_DATE, DATE
  • TRY_TO_DATE
  • TO_TIME, TIME
  • TRY_TO_TIME
  • TO_TIMESTAMP / TO_TIMESTAMP_*
  • TRY_TO_TIMESTAMP / TRY_TO_TIMESTAMP_*

선택적 인자에서 다음의 대소문자를 구분하지 않는 요소로 형식을 지정합니다:

형식 요소 (Format element) 설명 (Description)
YYYY 네 자리 [1] 연도
YY 두 자리 [1] 연도. TWO_DIGIT_CENTURY_START 세션 파라미터로 제어. 예를 들어 1980으로 설정하면 7980은 각각 20791980으로 파싱됨
Y 앞에 0이 없는 한 자리 또는 두 자리 [2] 연도. TWO_DIGIT_CENTURY_START 세션 파라미터로 제어. 예: 파라미터가 1990으로 설정되면 20051991은 각각 591로 직렬화됨
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). HH12H12에서만 사용. (HH24H24에는 사용 안 함)
P 오전(A) / 오후(P). HH12H12에서만 사용. (HH24H24에는 사용 안 함)
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. FFFF9(나노초)와 동일
TZH:TZM, TZHTZM, TZH 두 자리 [1] 시간대 시/분, UTC로부터의 오프셋. 부호로 +/-를 붙일 수 있음
UUUU ISO 형식의 네 자리 연도. BCE 연도에는 음수

[1] 자릿수는 값을 텍스트로 직렬화할 때 생성되는 출력을 설명해요. 텍스트를 파싱할 때 Snowflake는 지정된 자릿수까지 허용해요. 예를 들어 일 번호는 한 자리 또는 두 자리일 수 있어요.

[2] 자릿수는 값을 텍스트로 직렬화할 때 생성되는 출력을 설명해요: 값은 앞에 0 없이 직렬화돼요. 텍스트를 파싱할 때 Snowflake는 한 자리 또는 두 자리를 허용해요.

[3] MON 형식 요소의 경우 값을 텍스트로 직렬화할 때 생성되는 출력은 축약된 월 이름이에요. MMMM 형식 요소의 경우 출력은 전체 월 이름이에요. 텍스트를 파싱할 때 Snowflake는 MONMMMM 모두에 대해 세 글자 축약형 또는 전체 월 이름을 허용해요. 예를 들어 "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는 문자열을 파싱하거나 생성할 때 기대하는 형식을 지정하는 선택적 인자를 받아요. 형식은 다음 문자열 중 하나일 수 있어요(대소문자 구분 없음):

  • HEX
  • BASE64
  • UTF-8

이 형식들에 대한 자세한 내용은 지원되는 이진 형식 개요(Overview of supported binary formats) 문서를 참고하세요. 이 형식들의 사용 예시는 이진 입출력(Binary input and output) 문서의 Examples 섹션을 참고하세요.

더 알아보기 (Learn more)

  • 스칼라 함수 (functions)
  • 날짜 및 시간 함수 (functions-date-time)
  • 컨텍스트 함수 (functions-context)
  • 집계 함수 (functions-aggregation)