CAST(expression AS typename [format_clause])
쿼리에서 사용되는 Cast 구문은 표현식의 결과 유형이 다른 유형으로 변환되어야 함을 나타냅니다.
CAST
사용 시 BigQuery가 변환을 수행할 수 없으면 쿼리가 실패할 수 있습니다. 이러한 유형의 오류로부터 쿼리를 보호하기 위해 SAFE_CAST를 사용할 수 있습니다.
원본 값에서 대상 도메인으로 성공적으로 매핑되지 못하는 지원 유형 간의 변환은 런타임 오류를 유발합니다.
예를 들어 BYTES를 STRING으로 Cast 변환하는데 바이트 시퀀스가 유효한 UTF-8이 아닌 경우에는 런타임 오류가 발생합니다.
일부 Cast에는 Cast 생성 방법에 대한 안내를 제공하는 형식 절이 포함될 수 있습니다. 예를 들어 바이트 시퀀스를 UTF-8 인코딩 문자열 대신 BASE64 인코딩 문자열로 변환하도록 Cast를 안내할 수 있습니다.
다음 쿼리에서는 x
가 1
이면 “true”
이고, NULL
외의 값이면 “false”
이고, x
가 NULL
이면 Null
입니다.
CAST(x=1 AS STRING)
CAST(expression AS ARRAY<element_type>)
BigQuery는 ARRAY로 Cast변환을 지원합니다.
CAST(expression AS BIGNUMERIC)
BigQuery는 BIGNUMERIC으로 Cast변환을 지원합니다.
CAST(expression AS BOOL)
BigQuery는 BOOL로 Cast변환을 지원합니다.
CAST(expression AS BYTES [format_clause])
BigQuery는 BYTE로 Cast변환을 지원합니다.
CAST(expression AS DATE [format_clause])
BigQuery는 DATE로 Cast변환을 지원합니다.
CAST(expression AS DATE [format_clause])
BigQuery는 DATETIME으로 Cast변환을 지원합니다.
CAST(expression AS FLOAT64)
BigQuery는 부동 소수점 유형으로 Cast변환을 지원합니다.
CAST(expression AS INT64)
BigQuery는 정수 유형으로 Cast변환을 지원합니다.
16진수 문자열(0x123
)로 작업하는 경우, 이 문자열을 정수로 변환할 수 있습니다.
SELECT '0x123' as hax_value, CAST('0x123' as INT64) as hex_to_int;
SELECT '-0x123' as hax_value, CAST('-0x123' as INT64) as hex_to_int;
CAST(expression AS INTERVAL)
SELECT input, CAST(input AS INTERVAL) AS output
FROM UNNEST([
'1-2 3 10:20:30.456',
'1-2',
'10:20:30',
'P1Y2M3D',
'PT10H20M30,456S'
]) input;
CAST(expression AS NUMERIC)
BigQuery는 NUMERIC으로 Cast 변환
을 지원합니다.
CAST(expression AS STRING [format_clause [AT TIME ZONE timezone_expr]])
BigQuery는 STRING으로 Cast 변환을 지원합니다.
SELECT CAST(CURRENT_DATE() AS STRING) AS current_date;
SELECT CAST(CURRENT_DATE() AS STRING FORMAT 'DAY') AS current_day;
SELECT CAST(
TIMESTAMP '2008-12-25 00:00:00+00:00'
AS STRING FORMAT 'YY-MM-DD HH24:MI:SS TZH:TZM') AS date_time_to_string;
SELECT CAST(
TIMESTAMP '2008-12-25 00:00:00+00:00'
AS STRING FORMAT 'YYYY-MM-DD HH24:MI:SS TZH:TZM'
AT TIME ZONE 'Asia/Kolkata') AS date_time_to_string
SELECT CAST(INTERVAL 3 DAY AS STRING) AS interval_to_string
CAST(expression AS STRUCT)
BigQuery는 STRUCT로 Cast 변환
을 지원합니다.
CAST(expression AS TIME [format_clause])
BigQuery는 TIME으로 Cast 변환
을 지원합니다.
CAST(expression AS TIMESTAMP [format_clause [AT TIME ZONE timezone_expr]])
SELECT CAST("2020-06-02 17:00:53.110+00:00" AS TIMESTAMP) AS as_timestamp
SAFE_CAST(expression AS typename [format_clause])
CAST
사용 시 BigQuery가 변환을 수행할 수 없으면 쿼리가 실패할 수 있습니다.
예를 들어 다음 쿼리는 오류를 생성합니다.
SELECT CAST("apple" AS INT64) AS not_a_number;
이런 유형의 오류에서 쿼리를 보호하기 위해 SAFE_CAST
를 사용할 수 있습니다.
SAFE_CAST
는 오류를 발생시키지 않고 NULL
을 반환한다는 점을 제외하면 CAST와 동일합니다.
SELECT SAFE_CAST("apple" AS INT64) AS not_a_number;