형 변환 함수
데이터 변환 시 흔한 문제
ClickHouse는 일반적으로 C++ 프로그램과 동일한 동작을 따릅니다.
to<type> 함수와 cast는 경우에 따라 다르게 동작합니다. 예를 들어 LowCardinality의 경우 cast는 LowCardinality 특성을 제거하지만, to<type> 함수는 제거하지 않습니다. 널 허용(Nullable)도 마찬가지이며, 이 동작은 SQL 표준과 호환되지 않습니다. cast_keep_nullable 설정을 사용하여 변경할 수 있습니다.
데이터 타입의 값이 더 작은 데이터 타입으로 변환될 때(예: Int64에서 Int32로), 또는 서로 호환되지 않는 데이터 타입 간에 변환될 때(예: String에서 Int로) 잠재적인 데이터 손실이 발생할 수 있습니다. 결과가 예상과 일치하는지 반드시 주의 깊게 확인하십시오.
예:
toString 함수에 대한 참고 사항
toString 계열 함수는 숫자, 문자열(고정 문자열 제외), 날짜, 그리고 시간 정보를 포함한 날짜를 서로 변환하는 데 사용됩니다.
이들 모든 함수는 하나의 인자만 받습니다.
- 문자열로 변환하거나 문자열에서 변환할 때, 값은 TabSeparated 형식(및 거의 모든 다른 텍스트 형식)과 동일한 규칙으로 형식화되거나 파싱됩니다. 문자열을 파싱할 수 없으면 예외가 발생하고 요청이 취소됩니다.
- 날짜를 숫자로 또는 그 반대로 변환할 때, 해당 날짜는 유닉스 epoch 시작 시점부터의 일 수에 대응합니다.
- 시간 정보를 포함한 날짜를 숫자로 또는 그 반대로 변환할 때, 해당 날짜-시간 값은 유닉스 epoch 시작 시점부터의 초 수에 대응합니다.
DateTime인자를 받는toString함수는 두 번째 인자로 time zone 이름을 포함하는 String 인자를 받을 수 있습니다(예:Europe/Amsterdam). 이 경우 시간은 지정된 time zone에 따라 형식화됩니다.
toDate/toDateTime 함수에 대한 참고 사항
toDate/toDateTime 함수의 날짜 및 날짜-시간 형식은 다음과 같이 정의됩니다:
예외적으로, UInt32, Int32, UInt64, Int64 숫자형 타입을 Date로 변환할 때 값이 65536 이상이면, 해당 값을 일수(day)가 아닌 Unix 타임스탬프로 해석한 뒤 날짜로 반올림합니다.
이를 통해 일반적으로 자주 사용하는 toDate(unix_timestamp) 형태를 지원할 수 있으며, 그렇지 않으면 오류가 발생하므로 더 번거로운 toDate(toDateTime(unix_timestamp)) 형태로 작성해야 합니다.
날짜(Date)와 시간 정보를 포함한 날짜(DateTime) 간 변환은 자연스럽게 처리되며, 시간 값을 0으로 채워 넣거나 시간 값을 제거하는 방식으로 수행됩니다.
숫자형 타입 간 변환은 C++에서 서로 다른 숫자형 타입 간 대입에 사용하는 규칙과 동일한 규칙을 따릅니다.
예시
쿼리:
결과:
toUnixTimestamp 함수도 함께 참고하십시오.
CAST
도입: v1.1
값을 지정된 데이터 타입으로 변환합니다.
reinterpret 함수와 달리, CAST는 대상 타입에서도 동일한 값을 생성하려고 시도합니다.
이렇게 변환할 수 없는 경우 예외가 발생합니다.
구문
인수
반환 값
대상 데이터 타입으로 변환된 값을 반환합니다. Any
예제
기본 사용법
AS 구문 사용
:: 구문 사용
accurateCast
도입 버전: v1.1
값을 지정된 데이터 타입으로 변환합니다. CAST와 달리 accurateCast는 더 엄격하게 타입을 검사하며, 변환으로 인해 데이터 정밀도가 손실되거나 변환 자체가 불가능한 경우 예외를 발생시킵니다.
이 함수는 정밀도 손실과 유효하지 않은 변환을 방지하므로 일반 CAST보다 더 안전합니다.
구문
인수
반환 값
대상 데이터 타입으로 변환된 값을 반환합니다. Any
예시
성공적인 변환
문자열을 숫자로 변환
accurateCastOrDefault
도입 버전: v21.1
지정된 데이터 타입으로 값을 변환합니다.
accurateCast와 동일하지만, 변환을 정확하게 수행할 수 없는 경우 예외를 발생시키는 대신 기본값을 반환합니다.
두 번째 인수로 기본값을 제공하는 경우 해당 값은 대상 타입이어야 합니다. 기본값을 제공하지 않으면 대상 타입의 기본값이 사용됩니다.
구문
인수
x— 변환할 값입니다.AnyT— 대상 데이터 타입의 이름입니다.const Stringdefault_value— 선택 사항입니다. 변환에 실패했을 때 반환할 기본값입니다.Any
반환 값
대상 데이터 타입으로 변환된 값 또는 변환이 불가능한 경우 기본값을 반환합니다. Any
예시
성공적인 변환
명시적 기본값을 사용하는 변환 실패
암시적 기본값으로 인한 변환 실패
accurateCastOrNull
도입 버전: v1.1
값을 지정된 데이터 타입으로 변환합니다.
accurateCast와 유사하지만, 변환을 정확하게 수행할 수 없는 경우 예외를 발생시키는 대신 NULL을 반환합니다.
이 함수는 accurateCast의 안정성과 유연한 오류 처리를 결합합니다.
구문
인수
반환 값
대상 데이터 타입으로 변환된 값을 반환하며, 변환이 불가능하면 NULL을 반환합니다. Any
예제
성공적인 변환
변환 실패 시 NULL 반환
formatRow
도입 버전: v20.7
임의의 표현식을 지정된 format을 통해 문자열로 변환합니다.
format에 접두사/접미사가 포함되어 있으면 각 행마다 함께 출력됩니다. 이 함수는 행 기반 format만 지원합니다.
문법
인수
반환 값
서식이 적용된 문자열입니다. (텍스트 형식의 경우 일반적으로 줄 바꿈 문자로 끝납니다). String
예시
기본 사용법
사용자 지정 포맷 사용
formatRowNoNewline
도입 버전: v20.7
formatRow와 동일하지만, 각 행의 개행 문자를 제거합니다.
임의의 표현식을 지정된 포맷으로 문자열로 변환하되, 결과에서 뒤에 붙은 개행 문자를 제거합니다.
문법
인자
반환 값
개행 문자가 제거된 서식화된 문자열을 반환합니다. String
예제
기본 사용법
fromUnixTimestamp64Micro
도입 버전: v20.5
마이크로초 단위 Unix 타임스탬프를 마이크로초 정밀도의 DateTime64 값으로 변환합니다.
입력값은 마이크로초 정밀도의 Unix 타임스탬프(1970-01-01 00:00:00 UTC 이후 경과한 마이크로초 수)로 간주됩니다.
구문
인수
반환 값
마이크로초 정밀도의 DateTime64 값을 반환합니다. DateTime64(6)
예시
사용 예시
fromUnixTimestamp64Milli
도입 버전: v20.5
밀리초 단위의 Unix 타임스탬프를 밀리초 정밀도의 DateTime64 값으로 변환합니다.
입력 값은 1970-01-01 00:00:00 UTC 이후 경과한 밀리초 수를 나타내는, 밀리초 정밀도의 Unix 타임스탬프로 간주됩니다.
구문
인수
반환값
밀리초 단위 정밀도를 가지는 DateTime64 값입니다. DateTime64(3)
예시
사용 예시
fromUnixTimestamp64Nano
도입 버전: v20.5
나노초 단위 Unix 타임스탬프를 나노초 정밀도의 DateTime64 값으로 변환합니다.
입력 값은 1970-01-01 00:00:00 UTC부터 경과한 나노초 수를 나타내는, 나노초 정밀도의 Unix 타임스탬프로 간주합니다.
입력 값은 입력 값에 포함된 타임존이 아니라 UTC 기준 타임스탬프로 처리된다는 점에 유의하십시오.
구문
인수
반환 값
나노초 정밀도의 DateTime64 값을 반환합니다. DateTime64(9)
예시
사용 예시
fromUnixTimestamp64Second
도입된 버전: v24.12
초 단위 Unix 타임스탬프를 초 단위 정밀도를 갖는 DateTime64 값으로 변환합니다.
입력값은 초 단위 정밀도(1970-01-01 00:00:00 UTC 이후 경과한 초 수)를 갖는 Unix 타임스탬프로 간주됩니다.
구문
인자
반환 값
초 단위 정밀도의 DateTime64 값을 반환합니다. DateTime64(0)
예시
사용 예시
parseDateTime
도입된 버전: v23.3
MySQL 날짜 형식 문자열에 따라 날짜와 시간 문자열을 파싱합니다.
이 FUNCTION은 formatDateTime의 역연산입니다.
String 인자를 형식 지정 String에 따라 파싱합니다. DateTime 데이터 타입을 반환합니다.
구문
별칭: TO_UNIXTIME
인수
time_string—DateTime으로 변환할 문자열입니다.Stringformat—time_string을 어떻게 파싱할지 지정하는 형식 문자열입니다.Stringtimezone— 선택 사항입니다. 시간대입니다.String
반환 값
MySQL 스타일 형식 문자열에 따라 입력 문자열을 파싱하여 얻은 DateTime을 반환합니다. DateTime
예시
사용 예시
parseDateTime32BestEffort
도입 버전: v20.9
날짜와 시간의 문자열 표현을 DateTime 데이터 타입으로 변환합니다.
이 FUNCTION은 ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, ClickHouse 고유 형식을 비롯한 여러 날짜 및 시간 형식을 파싱합니다.
구문
인수
time_string— 변환할 날짜와 시간이 포함된 문자열입니다.Stringtime_zone— 선택적입니다.time_string을 해석할 때 사용할 시간대입니다.String
반환 값
time_string을 DateTime 값으로 반환합니다. DateTime
예시
사용 예시
타임존 포함
유닉스 타임스탬프
parseDateTime32BestEffortOrNull
도입 버전: v20.9
parseDateTime32BestEffort와 동일하지만, 파싱할 수 없는 날짜 형식을 만나면 NULL을 반환합니다.
구문
인수
time_string— 변환할 날짜와 시간이 들어 있는 문자열입니다.Stringtime_zone— 선택적입니다.time_string을 파싱할 때 기준이 되는 시간대입니다.String
반환 값
문자열을 파싱하여 얻은 DateTime 객체를 반환하며, 파싱에 실패하면 NULL을 반환합니다. DateTime
예시
사용 예시
parseDateTime32BestEffortOrZero
도입된 버전: v20.9
parseDateTime32BestEffort와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 0 값의 날짜 또는 0 값의 날짜-시간을 반환합니다.
구문
인자
time_string— 변환할 날짜와 시간을 포함하는 문자열입니다.Stringtime_zone— 선택 사항입니다.time_string을 파싱할 때 기준이 되는 시간대입니다.String
반환 값
문자열을 파싱하여 얻은 DateTime 값을 반환하며, 파싱에 실패하면 zero date인 1970-01-01 00:00:00을 반환합니다. DateTime
예시
사용 예시
parseDateTime64
도입된 버전: v24.11
MySQL 날짜 형식 문자열을 사용하여, 초 단위 미만의 정밀도로 날짜와 시간 문자열을 파싱합니다.
이 함수는 DateTime64에 대해 formatDateTime의 역함수입니다.
String 인자를 형식 지정 String을 사용해 파싱합니다. 1900년부터 2299년까지의 날짜를 초 단위 미만 정밀도로 표현할 수 있는 DateTime64 타입을 반환합니다.
문법
인수
time_string—DateTime64로 파싱할 문자열.Stringformat—time_string을 파싱하는 방법을 지정하는 포맷 문자열.Stringtimezone— 옵션. 타임존.String
반환 값
MySQL 스타일 포맷 문자열을 기준으로 입력 문자열을 파싱해 얻은 DateTime64 값을 반환합니다. DateTime64
예시
사용 예시
parseDateTime64BestEffort
도입 버전: v20.1
parseDateTimeBestEffort FUNCTION과 동일하지만 밀리초 및 마이크로초까지 파싱하며 DateTime64 데이터 타입을 반환합니다.
문법
인수
time_string— 변환할 날짜 또는 날짜와 시간이 포함된 문자열입니다.Stringprecision— 선택 사항입니다. 필요한 정밀도입니다. 밀리초는3, 마이크로초는6입니다. 기본값:3.UInt8time_zone— 선택 사항입니다. 시간대입니다. 함수는 이 매개변수로 지정된 시간대를 기준으로time_string을 파싱합니다.String
반환 값
DateTime64 데이터 타입으로 변환된 time_string을 반환합니다. DateTime64
예시
사용 예시
parseDateTime64BestEffortOrNull
도입 버전: v20.1
parseDateTime64BestEffort와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 NULL을 반환합니다.
구문
인수
time_string— 변환할 날짜 또는 날짜와 시간이 포함된 문자열입니다.Stringprecision— 선택 사항입니다. 필요한 정밀도입니다. 밀리초는3, 마이크로초는6입니다. 기본값:3.UInt8time_zone— 선택 사항입니다. 시간대를 지정합니다. 함수는 해당 시간대에 따라time_string을 파싱합니다.String
반환 값
time_string을 DateTime64로 변환하여 반환하거나, 입력을 파싱하지 못하면 NULL을 반환합니다. DateTime64 또는 NULL
예시
사용 예시
parseDateTime64BestEffortOrZero
도입: v20.1
parseDateTime64BestEffort와 동일하지만, 처리할 수 없는 형식의 날짜를 만나면 날짜 0 값 또는 날짜-시간 0 값을 반환합니다.
구문
인수
time_string— 변환할 날짜 또는 날짜와 시간이 포함된 문자열입니다.Stringprecision— 선택 사항입니다. 요구되는 정밀도입니다. 밀리초는3, 마이크로초는6입니다. 기본값:3.UInt8time_zone— 선택 사항입니다. 시간대입니다. 함수는 이 시간대를 기준으로time_string을 파싱합니다.String
반환 값
DateTime64로 변환된 time_string을 반환하며, 입력을 파싱할 수 없는 경우 영(0) 날짜/시간 값(1970-01-01 00:00:00.000)을 반환합니다. DateTime64
예시
사용 예시
parseDateTime64BestEffortUS
도입 버전: v22.8
parseDateTime64BestEffort와 동일하지만, 모호한 경우 미국식 날짜 형식(MM/DD/YYYY 등)으로 우선적으로 해석합니다.
구문
인수
time_string— 변환할 날짜 또는 날짜와 시간이 포함된 문자열입니다.Stringprecision— 선택 사항입니다. 필요한 정밀도입니다. 밀리초는3, 마이크로초는6입니다. 기본값:3.UInt8time_zone— 선택 사항입니다. 시간대입니다. 이 함수는 해당 시간대를 기준으로time_string을 파싱합니다.String
반환 값
모호한 경우 미국식 날짜 형식 선호 규칙을 사용하여 time_string을 DateTime64로 변환한 값을 반환합니다. DateTime64
예시
사용 예시
parseDateTime64BestEffortUSOrNull
도입 버전: v22.8
parseDateTime64BestEffort와 동일하지만, 모호한 경우 US 날짜 형식(MM/DD/YYYY 등)을 우선적으로 사용하고, 처리할 수 없는 날짜 형식을 만나면 NULL을 반환합니다.
구문
인수
time_string— 변환할 날짜 또는 날짜와 시간이 포함된 문자열입니다.Stringprecision— 선택 사항. 필요한 정밀도입니다. 밀리초는3, 마이크로초는6입니다. 기본값:3.UInt8time_zone— 선택 사항. 시간대입니다. 함수는 이 시간대를 기준으로time_string을 해석합니다.String
반환 값
미국 형식 우선 규칙에 따라 time_string을 DateTime64로 변환한 값을 반환하며, 입력을 해석할 수 없는 경우 NULL을 반환합니다. DateTime64 또는 NULL
예시
사용 예시
parseDateTime64BestEffortUSOrZero
도입 버전: v22.8
parseDateTime64BestEffort와 동일하지만, 모호한 경우 미국식 날짜 형식(MM/DD/YYYY 등)을 우선적으로 사용하고, 처리할 수 없는 날짜 형식을 만나면 0 날짜 또는 0 날짜‑시간 값을 반환합니다.
문법
인수
time_string— 변환할 날짜 또는 날짜·시간이 포함된 문자열입니다.Stringprecision— 선택 사항입니다. 필요한 정밀도입니다. 밀리초는3, 마이크로초는6입니다. 기본값:3.UInt8time_zone— 선택 사항입니다. 시간대입니다. 이 함수는 해당 시간대에 따라time_string을 파싱합니다.String
반환 값
미국식 형식을 기준으로 DateTime64로 변환된 time_string을 반환하며, 입력을 파싱할 수 없는 경우 0 날짜/일시값(1970-01-01 00:00:00.000)을 반환합니다. DateTime64
예시
사용 예시
parseDateTime64InJodaSyntax
도입 버전: v24.10
Joda 날짜 형식 문자열에 따라 초 단위 이하 정밀도를 포함한 날짜와 시간 문자열을 파싱합니다.
이 FUNCTION은 DateTime64에 대해 formatDateTimeInJodaSyntax의 역함수입니다.
Joda 스타일 형식 문자열을 사용하여 String 인자를 파싱합니다. 1900년부터 2299년까지의 날짜를 초 단위 이하 정밀도로 표현할 수 있는 DateTime64 타입을 반환합니다.
형식 패턴은 Joda Time 문서를 참조하십시오.
Syntax
인자
time_string—DateTime64로 파싱할 문자열입니다.Stringformat—time_string을 어떻게 파싱할지 지정하는 Joda 구문(Joda syntax)의 형식 문자열입니다.Stringtimezone— 선택 사항입니다. 타임존입니다.String
반환 값
입력 문자열을 Joda 스타일 형식 문자열에 따라 파싱한 DateTime64 값을 반환합니다. DateTime64
예시
사용 예시
parseDateTime64InJodaSyntaxOrNull
도입된 버전: v24.10
parseDateTime64InJodaSyntax와 동일하지만, 구문 분석할 수 없는 날짜 형식을 만나면 NULL을 반환합니다.
구문
인수
time_string— DateTime64로 파싱할 문자열입니다.Stringformat—time_string을(를) 어떻게 파싱할지 지정하는 Joda 구문 형식 문자열입니다.Stringtimezone— 선택 사항입니다. 타임존을 나타냅니다.String
반환 값
입력 문자열을 파싱해 얻은 DateTime64를 반환하며, 파싱에 실패하면 NULL을 반환합니다. Nullable(DateTime64)
예시
사용 예시
parseDateTime64InJodaSyntaxOrZero
도입 버전: v24.10
parseDateTime64InJodaSyntax와 동일하지만, 구문 분석할 수 없는 날짜 형식을 만나면 0 날짜(Zero date)를 반환합니다.
구문
인수
time_string—DateTime64로 파싱할 문자열입니다.Stringformat—time_string을 파싱하는 방법을 지정하는 Joda 문법의 포맷 문자열입니다.Stringtimezone— 선택 사항입니다. 타임존입니다.String
반환 값
입력 문자열에서 파싱한 DateTime64 값을 반환하며, 파싱에 실패하면 0인 DateTime64 값을 반환합니다. DateTime64
예시
사용 예시
parseDateTime64OrNull
도입 버전: v24.11
parseDateTime64와 동일하지만, 구문 분석할 수 없는 날짜 형식을 만나면 NULL을 반환합니다.
구문
인수
time_string—DateTime64로 파싱할 문자열입니다.Stringformat—time_string을 어떻게 파싱할지 지정하는 형식 문자열입니다.Stringtimezone— 선택 사항인 시간대입니다.String
반환 값
입력 문자열을 파싱한 DateTime64를 반환하며, 파싱에 실패하면 NULL을 반환합니다. Nullable(DateTime64)
예시
사용 예시
parseDateTime64OrZero
도입 버전: v24.11
parseDateTime64와 동일하지만, 파싱할 수 없는 날짜 형식을 만나면 0값 날짜를 반환합니다.
구문
인자
time_string—DateTime64로 파싱할 문자열입니다.Stringformat—time_string을 어떻게 파싱할지 지정하는 형식 문자열입니다.Stringtimezone— 선택 사항입니다. 타임존입니다.String
반환 값
입력 문자열에서 파싱한 DateTime64 값을 반환하며, 파싱에 실패하면 0인 DateTime64 값을 반환합니다. DateTime64
예시
사용 예시
parseDateTimeBestEffort
도입된 버전: v1.1
String 형식으로 표현된 날짜와 시간을 DateTime 데이터 타입으로 변환합니다.
이 함수는 ISO 8601, RFC 1123 - 5.2.14 RFC-822 날짜 및 시간 명세, ClickHouse 고유 형식 및 기타 여러 날짜/시간 형식을 파싱합니다.
지원되는 비표준 형식:
- 9~10자리 UNIX 타임스탬프가 포함된 문자열.
- 날짜와 시간 구성 요소를 포함하는 문자열:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss등. - 날짜만 있고 시간 구성 요소가 없는 문자열:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YY등. - 일(day)과 시간을 포함하는 문자열:
DD,DD hh,DD hh:mm. 이 경우MM은01로 대체됩니다. - 날짜와 시간에 더해 시간대 오프셋 정보가 포함된 문자열:
YYYY-MM-DD hh:mm:ss ±h:mm등. - syslog 타임스탬프 형식의 문자열:
Mmm dd hh:mm:ss. 예:Jun 9 14:20:32.
구분자가 있는 모든 형식에 대해 이 함수는 월 이름이 전체 이름이거나 월 이름의 앞 세 글자로 표현된 경우를 모두 파싱합니다. 연도가 명시되지 않은 경우 현재 연도로 간주합니다.
문법
인수
time_string— 변환할 날짜와 시간이 포함된 문자열입니다.Stringtime_zone— 선택 사항입니다.time_string을 파싱할 때 기준이 되는 시간대입니다.String
반환 값
time_string을 DateTime으로 변환하여 반환합니다. DateTime
예시
사용 예시
타임존 포함
유닉스 타임스탬프
parseDateTimeBestEffortOrNull
도입 버전: v1.1
parseDateTimeBestEffort와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 NULL을 반환합니다.
이 함수는 ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, ClickHouse 고유 형식 및 기타 일부 날짜와 시간 형식을 파싱합니다.
지원되는 비표준 형식:
- 9~10자리 Unix 타임스탬프가 포함된 문자열.
- 날짜와 시간 구성 요소를 모두 포함하는 문자열:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss등. - 날짜만 있고 시간 구성 요소가 없는 문자열:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YY등. - 일(day)과 시간만 포함하는 문자열:
DD,DD hh,DD hh:mm. 이 경우MM은01로 대체됩니다. - 날짜와 시간에 더해 시간대 오프셋 정보까지 포함하는 문자열:
YYYY-MM-DD hh:mm:ss ±h:mm등. - syslog 타임스탬프:
Mmm dd hh:mm:ss. 예:Jun 9 14:20:32.
구분자가 있는 모든 형식의 경우, 함수는 월 이름을 전체 이름 또는 앞 세 글자로 표기한 경우 모두 파싱합니다. 연도가 지정되지 않은 경우 현재 연도와 동일한 값으로 간주합니다.
구문
인수
time_string— 변환할 날짜와 시간이 들어 있는 문자열입니다.Stringtime_zone— 선택 사항입니다.time_string을 파싱할 때 기준으로 사용하는 시간대입니다.String
반환 값
time_string을 DateTime으로 변환한 값을 반환하며, 입력을 파싱할 수 없으면 NULL을 반환합니다. DateTime 또는 NULL
예시
사용 예시
parseDateTimeBestEffortOrZero
도입된 버전: v1.1
parseDateTimeBestEffort와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 0 날짜 또는 0 날짜-시간을 반환합니다.
이 함수는 ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, ClickHouse 고유 형식 및 기타 일부 날짜 및 시간 형식을 파싱합니다.
지원되는 비표준 형식:
- 9~10자리 유닉스 타임스탬프를 포함하는 문자열.
- 날짜와 시간 구성 요소를 포함하는 문자열:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss등. - 날짜는 있으나 시간 구성 요소가 없는 문자열:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YY등. - 일(day)과 시간만 있는 문자열:
DD,DD hh,DD hh:mm. 이 경우MM은01로 대체됩니다. - 날짜와 시간에 더해 시간대 오프셋 정보가 포함된 문자열:
YYYY-MM-DD hh:mm:ss ±h:mm등. - syslog 타임스탬프:
Mmm dd hh:mm:ss. 예:Jun 9 14:20:32.
구분자가 있는 모든 형식에 대해, 이 함수는 월 이름을 전체 이름 또는 월 이름의 처음 세 글자로 표현한 경우를 모두 파싱합니다. 연도가 지정되지 않은 경우, 현재 연도로 간주합니다.
구문
인자
time_string— 변환할 날짜와 시간이 포함된 문자열입니다.Stringtime_zone— 선택 사항입니다.time_string을 파싱할 때 사용할 시간대를 나타냅니다.String
반환 값
입력 값을 파싱할 수 있으면 time_string을 DateTime으로 반환하고, 파싱할 수 없으면 0 날짜/DateTime 값( 1970-01-01 또는 1970-01-01 00:00:00)을 반환합니다. DateTime
예시
사용 예시
parseDateTimeBestEffortUS
도입 버전: v1.1
이 FUNCTION은 ISO 날짜 형식(예: YYYY-MM-DD hh:mm:ss)과 월(month)과 일(day) 구성 요소를 모호하지 않게 추출할 수 있는 다른 날짜 형식(예: YYYYMMDDhhmmss, YYYY-MM, DD hh, YYYY-MM-DD hh:mm:ss ±h:mm)에 대해서는 parseDateTimeBestEffort와 동일하게 동작합니다.
월과 일 구성 요소를 모호하지 않게 추출할 수 없는 경우(예: MM/DD/YYYY, MM-DD-YYYY, MM-DD-YY)에는 DD/MM/YYYY, DD-MM-YYYY, DD-MM-YY 대신 미국식 날짜 형식으로 우선 해석합니다.
단, 앞의 설명에 대한 예외로, 월 값이 12보다 크고 31 이하인 경우에는 이 FUNCTION이 parseDateTimeBestEffort의 동작을 따릅니다. 예를 들어 15/08/2020은 2020-08-15로 파싱됩니다.
구문
인수
time_string— 변환할 날짜와 시간이 포함된 문자열입니다.Stringtime_zone— 선택 사항입니다.time_string을 파싱할 때 사용할 시간대입니다.String
반환 값
모호한 경우 미국식 날짜 형식 선호 규칙을 사용하여 time_string을 DateTime으로 반환합니다. DateTime
예시
사용 예시
parseDateTimeBestEffortUSOrNull
도입 버전: v1.1
parseDateTimeBestEffortUS FUNCTION과 동일하지만, 처리할 수 없는 날짜 형식을 발견하면 NULL을 반환합니다.
이 FUNCTION은 ISO 날짜 형식에 대해서는 parseDateTimeBestEffort와 동일하게 동작하지만, 애매할 때는 미국식 날짜 형식을 우선하며, 파싱 오류가 발생하면 NULL을 반환합니다.
문법
인자
time_string— 변환할 날짜와 시간이 포함된 문자열입니다.Stringtime_zone— 선택 사항입니다.time_string을 해석할 때 사용할 시간대입니다.String
반환 값
미국식 형식을 우선 적용하여 time_string을 DateTime으로 변환해 반환하거나, 입력을 파싱할 수 없는 경우 NULL을 반환합니다. DateTime 또는 NULL
예시
사용 예시
parseDateTimeBestEffortUSOrZero
도입된 버전: v1.1
parseDateTimeBestEffortUS 함수와 동일하지만, 처리할 수 없는 날짜 형식을 만나면 0 날짜(1970-01-01) 또는 시간까지 포함한 0 날짜(1970-01-01 00:00:00)를 반환합니다.
이 함수는 ISO 날짜 형식에 대해서는 parseDateTimeBestEffort와 동일하게 동작하지만, 모호한 경우에는 US 날짜 형식을 우선하며, 파싱 오류 발생 시 0 값을 반환합니다.
구문
인수
time_string— 변환할 날짜와 시간이 포함된 문자열입니다.Stringtime_zone— 선택 사항.time_string을 해석할 때 사용할 시간대입니다.String
반환 값
미국식 형식을 우선적으로 사용하여 time_string을 DateTime으로 변환해 반환하며, 입력을 파싱할 수 없는 경우 0값 날짜/DateTime(1970-01-01 또는 1970-01-01 00:00:00)을 반환합니다. DateTime
예시
사용 예시
parseDateTimeInJodaSyntax
도입: v23.3
Joda 날짜 형식 문자열을 사용하여 날짜 및 시간 문자열을 구문 분석합니다.
이 함수는 formatDateTimeInJodaSyntax의 역함수입니다.
Joda 스타일의 형식 String을 사용하여 String 인수를 구문 분석합니다. DateTime 타입을 반환합니다.
형식 패턴에 대해서는 Joda Time 문서를 참조하십시오.
구문
인수
time_string—DateTime으로 파싱할 문자열입니다.Stringformat—time_string을 어떻게 파싱할지 지정하는 Joda 문법의 포맷 문자열입니다.Stringtimezone— 선택 사항입니다. 시간대를 나타냅니다.String
반환 값
Joda 스타일 포맷 문자열에 따라 입력 문자열을 파싱한 DateTime을 반환합니다. DateTime
예시
사용 예시
parseDateTimeInJodaSyntaxOrNull
도입 버전: v23.3
parseDateTimeInJodaSyntax와 동일하지만, 해석할 수 없는 날짜 형식을 만나면 NULL을 반환합니다.
구문
인수
time_string—DateTime형식으로 파싱할 문자열입니다.Stringformat—time_string을 어떻게 파싱할지 지정하는 Joda 구문을 사용하는 형식 문자열입니다.Stringtimezone— 선택 사항입니다. 시간대입니다.String
반환 값
입력 문자열을 파싱하여 얻은 DateTime을 반환하며, 파싱에 실패하면 NULL을 반환합니다. Nullable(DateTime)
예시
사용 예시
parseDateTimeInJodaSyntaxOrZero
도입 버전: v23.3
parseDateTimeInJodaSyntax와 동일하지만, 파싱할 수 없는 날짜 형식을 만나면 0 날짜 값을 반환합니다.
구문
인자
time_string—DateTime으로 파싱할 문자열입니다.Stringformat—time_string을 어떻게 파싱할지 지정하는 Joda 구문을 사용하는 형식 문자열입니다.Stringtimezone— 선택 사항입니다. 타임존을 나타냅니다.String
반환 값
입력 문자열에서 파싱한 DateTime을 반환하며, 파싱에 실패하면 DateTime 값 0을 반환합니다. DateTime
예시
사용 예시
parseDateTimeOrNull
도입 버전: v23.3
parseDateTime와 동일하지만, 해석할 수 없는 날짜 형식을 만나면 NULL을 반환합니다.
구문
별칭: str_to_date
인수
time_string—DateTime으로 파싱할 문자열입니다.Stringformat—time_string을 어떻게 파싱할지 지정하는 형식 문자열입니다.Stringtimezone— 선택 사항인 시간대입니다.String
반환 값
입력 문자열을 DateTime으로 파싱한 값을 반환하며, 파싱에 실패하면 NULL을 반환합니다. Nullable(DateTime)
예시
사용 예시
parseDateTimeOrZero
도입 버전: v23.3
parseDateTime와 동일하지만, 파싱할 수 없는 날짜 형식을 만나면 0 값의 날짜를 반환합니다.
구문
인수
time_string—DateTime으로 파싱할 문자열입니다.Stringformat—time_string을 파싱하는 방식을 지정하는 포맷 문자열입니다.Stringtimezone— 선택 사항입니다. 타임존입니다.String
반환 값
입력 문자열에서 파싱한 DateTime을 반환하며, 파싱에 실패한 경우 0으로 초기화된 DateTime을 반환합니다. DateTime
예시
사용 예시
reinterpret
도입 버전: v1.1
입력 값 x의 원본 메모리 내 바이트 시퀀스를 그대로 사용하고, 이를 대상 타입으로 재해석합니다.
구문
인수
반환 값
대상 타입의 값입니다. Any
예시
사용 예시
Array 예제
reinterpretAsDate
도입 버전: v1.1
입력 값을 Date 값으로 재해석합니다(리틀 엔디언 순서를 가정). 이 값은 Unix epoch 시작일인 1970-01-01 이후 경과한 일 수를 나타냅니다.
구문
인수
x— Unix Epoch 시작 이후 경과한 일 수.(U)Int*또는Float*또는Date또는DateTime또는UUID또는String또는FixedString
반환 값
날짜. Date
예시
사용 예시
reinterpretAsDateTime
도입 버전: v1.1
입력 값을 DateTime 값으로(리틀 엔디언 순서를 가정하여) 재해석하며, 이는 Unix epoch의 시작인 1970-01-01 이후 경과한 일 수를 나타냅니다.
구문
인수
x— Unix Epoch 기준 시작 시점부터 경과한 초 수.(U)Int*또는Float*또는Date또는DateTime또는UUID또는String또는FixedString
반환값
날짜와 시간. DateTime
예제
사용 예제
reinterpretAsFixedString
도입 버전: v1.1
입력값을 고정 길이 문자열로 재해석합니다(little endian 순서를 가정합니다).
마지막에 오는 널 바이트(null byte)는 무시됩니다. 예를 들어, UInt32 값 255에 대해 이 함수는 한 글자로 이루어진 문자열을 반환합니다.
구문
인수
반환 값
x를 나타내는 바이트를 포함하는 고정 길이 문자열 값입니다. FixedString
예시
사용 예시
reinterpretAsFloat32
도입 버전: v1.1
입력 값을 Float32 타입의 값으로 다시 해석합니다.
CAST와 달리 이 FUNCTION은 원래 값을 보존하려고 하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없는 경우 결과 값은 정의되지 않습니다.
구문
인수
반환 값
재해석된 x 값을 Float32 형식으로 반환합니다.
예시
사용 예시
reinterpretAsFloat64
도입: v1.1
입력 값을 Float64 형식의 값으로 재해석합니다.
CAST와 달리, 이 함수는 원래 값을 보존하려고 하지 않습니다. 대상 형식이 입력 값을 표현할 수 없는 경우 출력 값은 정의되지 않습니다.
구문
인수(Arguments)
반환 값(Returned value)
x를 재해석한 값을 반환합니다. Float64
예시(Examples)
사용 예시(Usage example)
reinterpretAsInt128
도입: v1.1
입력 값을 Int128 타입의 값으로 재해석합니다.
CAST와 달리 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면 출력은 정의되지 않습니다.
구문
인수
반환 값
재해석된 x 값을 반환합니다. Int128
예시
사용 예시
reinterpretAsInt16
도입 버전: v1.1
입력값을 Int16 타입의 값으로 재해석합니다.
CAST와 달리, 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없는 경우 출력값은 정의되지 않습니다.
문법
인수
반환 값
재해석된 값 x를 반환합니다. Int16
예시
사용 예시
reinterpretAsInt256
도입 버전: v1.1
입력 값을 Int256 타입의 값으로 재해석합니다.
CAST와는 달리, 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없는 경우, 출력 값은 정의되지 않습니다.
구문
인자
반환 값
재해석된 값 x를 반환합니다. Int256
예시
사용 예시
reinterpretAsInt32
도입 버전: v1.1
입력 값을 Int32 타입의 값으로 재해석합니다.
CAST와 달리 이 FUNCTION은 원래 값을 보존하려고 하지 않습니다. 대상 타입으로 입력 값을 표현할 수 없는 경우 결과는 정의되지 않습니다.
구문
인자
반환 값
재해석된 값 x를 반환합니다. Int32
예시
사용 예시
reinterpretAsInt64
도입 시기: v1.1
입력 값을 Int64 타입의 값으로 재해석합니다.
CAST와는 달리, 이 FUNCTION은 원래 값을 보존하려 하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면 출력 결과는 정의되지 않습니다.
문법
인수
반환 값
Int64로 재해석된 값 x를 반환합니다. Int64
예시
사용 예시
reinterpretAsInt8
도입: v1.1
입력 값을 Int8 타입의 값으로 재해석합니다.
CAST와는 달리, 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 값을 표현할 수 없으면 결과 값은 정의되지 않습니다.
구문
인자
반환 값
재해석한 값 x를 반환합니다. Int8
예시
사용 예시
reinterpretAsString
도입 버전: v1.1
입력 값을 문자열로 재해석합니다(리틀 엔디언 바이트 순서를 가정합니다). 값 끝부분의 널 바이트는 무시되며, 예를 들어 이 함수는 UInt32 값 255에 대해 문자 하나로 이루어진 문자열을 반환합니다.
구문
인자
반환 값
x를 표현하는 바이트를 그대로 포함하는 문자열입니다. String
예시
사용 예시
reinterpretAsUInt128
도입 버전: v1.1
입력 값을 UInt128 타입의 값으로 재해석합니다.
CAST와는 달리, 이 FUNCTION은 원래 값을 보존하려고 하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없으면 결과는 정의되지 않습니다.
구문
인수
반환 값
재해석된 값 x를 반환합니다. UInt128
예제
사용 예제
reinterpretAsUInt16
도입 버전: v1.1
입력값을 UInt16 타입의 값으로 재해석합니다.
CAST와는 달리, 이 FUNCTION은 원래 값을 보존하려고 하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없는 경우, 결과는 정의되지 않습니다.
구문
인수
반환 값
재해석한 값 x를 반환합니다. UInt16
예시
사용 예시
reinterpretAsUInt256
도입 버전: v1.1
입력 값을 UInt256 타입의 값으로 다시 해석합니다.
CAST와 달리 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 값을 표현할 수 없는 경우, 출력 값은 정의되지 않습니다.
문법
인수
반환 값
x를 UInt256으로 재해석한 값을 반환합니다. UInt256
예제
사용 예제
reinterpretAsUInt32
도입: v1.1
입력 값을 UInt32 타입의 값으로 재해석합니다.
CAST와 달리, 이 함수는 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 타입을 표현할 수 없는 경우 출력 값은 정의되지 않습니다.
구문
인자
반환 값
재해석된 x 값을 반환합니다. UInt32
예시
사용 예시
reinterpretAsUInt64
도입: v1.1
입력 값을 UInt64 타입의 값으로 재해석합니다.
CAST와는 달리, 이 FUNCTION은 원래 값을 보존하려고 시도하지 않습니다. 대상 타입이 입력 값을 표현할 수 없는 경우 출력 값은 정의되지 않습니다.
구문
인자
반환 값
재해석된 x 값을 반환합니다. UInt64
예시
사용 예시
reinterpretAsUInt8
도입된 버전: v1.1
입력 값을 UInt8 타입의 값으로 다시 해석합니다.
CAST와 달리, 대상 타입이 입력 타입을 표현할 수 없더라도 원래 값을 보존하려고 시도하지 않으며, 이 경우 출력 값은 정의되지 않습니다.
구문
인자
반환 값
재해석된 값 x를 반환합니다. UInt8
예시
사용 예시
reinterpretAsUUID
도입 버전: v1.1
16바이트 길이의 문자열을 받아, 이를 8바이트씩 두 부분으로 나누어 각 부분을 리틀 엔디언(little-endian) 바이트 순서로 해석하여 UUID를 반환합니다. 문자열 길이가 충분하지 않으면, 필요한 개수만큼의 널(null) 바이트가 문자열 끝에 패딩된 것처럼 동작합니다. 문자열이 16바이트보다 길면, 끝에 있는 추가 바이트들은 무시됩니다.
구문
인자
fixed_string— 빅엔디언 바이트 문자열입니다.FixedString
반환 값
UUID 타입의 값입니다. UUID
예시
문자열을 UUID로 변환
toBFloat16
도입: v1.1
입력 값을 BFloat16 타입 값으로 변환합니다. 오류가 발생하면 예외를 발생시킵니다.
함께 보기:
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다.Expression
반환 값
16비트 brain-float 값입니다. BFloat16
예시
사용 예시
toBFloat16OrNull
도입 버전: v1.1
String 형식의 입력 값을 BFloat16 형식의 값으로 변환합니다. 문자열이 부동 소수점 값을 나타내지 않는 경우 함수는 NULL을 반환합니다.
지원되는 인수:
- 숫자 값을 나타내는 문자열 표현.
지원되지 않는 인수 (NULL 반환):
- 이진수 및 16진수 값을 나타내는 문자열 표현.
- 숫자 값.
이 함수는 문자열 표현에서 변환하는 동안 정밀도 손실이 발생해도 오류 없이 진행되도록 허용합니다.
함께 보기:
문법
인수
x— 숫자를 나타내는String형식의 문자열입니다.String
반환 값
16비트 brain-float 값(BFloat16)을 반환하며, 그렇지 않으면 NULL을 반환합니다. BFloat16 또는 NULL
예시
사용 예시
toBFloat16OrZero
도입 버전: v1.1
String 입력 값을 BFloat16 타입의 값으로 변환합니다.
문자열이 부동 소수점 값을 나타내지 않으면 함수는 0을 반환합니다.
지원되는 인수:
- 숫자 값을 나타내는 문자열 표현.
지원되지 않는 인수(0 반환):
- 2진수 및 16진수 값을 나타내는 문자열 표현.
- 숫자 값.
이 함수는 문자열 표현에서 변환하는 동안 정밀도 손실이 발생해도 오류나 경고 없이 허용합니다.
함께 보기:
구문
인수
x— 숫자의 문자열 표현입니다.String
반환 값
16비트 brain-float 값을 반환하며, 그렇지 않은 경우 0을 반환합니다. BFloat16
예시
사용 예시
toBool
도입 버전: v22.2
입력 값을 Bool 타입의 값으로 변환합니다.
구문
인수
expr— 숫자 또는 문자열을 반환하는 표현식입니다. 문자열의 경우 대소문자를 구분하지 않고 'true' 또는 'false' 값을 허용합니다.(U)Int*또는Float*또는String또는Expression
반환 값
인수의 평가 결과에 따라 true 또는 false를 반환합니다. Bool
예제
사용 예제
toDate
도입된 버전: v1.1
입력값을 Date 타입으로 변환합니다.
String, FixedString, DateTime 또는 숫자형 타입에서의 변환을 지원합니다.
구문
인수
x— 변환할 입력값입니다.String또는FixedString또는DateTime또는(U)Int*또는Float*
반환 값
변환된 입력값을 반환합니다. Date
예제
String을 Date로 변환
DateTime 값을 Date로 변환
정수를 Date로 변환
toDate32
도입 버전: v21.9
인수를 Date32 데이터 타입으로 변환합니다.
값이 범위를 벗어나면 toDate32는 Date32가 지원하는 경계값을 반환합니다.
인수가 Date 타입인 경우, 해당 타입의 범위를 고려합니다.
구문
인수
반환값
캘린더 날짜인 Date32를 반환합니다.
예제
범위 내
범위 초과
toDate32OrDefault
도입 버전: v21.11
인수를 Date32 데이터 타입으로 변환합니다. 값이 범위를 벗어나면 toDate32OrDefault는 Date32에서 지원하는 하한 값을 반환합니다. 인수가 Date 타입이면 해당 타입의 범위가 적용됩니다. 유효하지 않은 인수가 전달되면 기본값을 반환합니다.
구문
인수
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 식.String또는(U)Int*또는Float*default— 선택 사항. 파싱에 실패했을 때 반환할 기본값.Date32
반환 값
성공한 경우 Date32 타입의 값을 반환하며, 그렇지 않으면 지정된 기본값을 반환하고, 기본값이 지정되지 않은 경우 1900-01-01을 반환합니다. Date32
예시
변환 성공 예시
형 변환 실패
toDate32OrNull
도입 버전: v21.9
입력 값을 Date32 타입 값으로 변환하며, 잘못된 인수가 전달되면 NULL을 반환합니다.
toDate32와 동일하지만 잘못된 인수가 전달되면 NULL을 반환합니다.
구문
인수
x— 날짜를 문자열로 표현한 값입니다.String
반환 값
성공하면 Date32 값을 반환하고, 그렇지 않으면 NULL을 반환합니다. Date32 또는 NULL
예제
사용 예제
toDate32OrZero
도입 버전: v21.9
입력 값을 Date32 타입의 값으로 변환하며, 잘못된 인수가 전달되면 Date32의 하한값을 반환합니다. toDate32와 동일하지만, 잘못된 인수가 전달되면 Date32의 하한값을 반환합니다.
함께 보기:
구문
인자
x— 날짜를 나타내는 문자열.String
반환 값
성공하면 Date32 값을, 실패하면 Date32의 하한 값인 1900-01-01을 반환합니다. Date32
예시
사용 예시
toDateOrDefault
도입된 버전: v21.11
toDate와 동일하지만, 변환에 실패하는 경우 기본값을 반환합니다. 기본값은 두 번째 인자가 지정되어 있으면 그 값이고, 지정되지 않은 경우 Date의 최솟값입니다.
구문
인수
expr— 숫자 값이거나 숫자의 문자열 표현을 반환하는 표현식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.Date
반환 값
성공하면 Date 타입의 값을 반환하고, 그렇지 않으면 default 인수가 전달된 경우 해당 기본값을, 전달되지 않은 경우 1970-01-01을 반환합니다. Date
예시
성공적인 변환
변환 실패
toDateOrNull
도입 버전: v1.1
입력값을 Date 타입의 값으로 변환하지만, 잘못된 인수가 전달되면 NULL을 반환합니다.
toDate와 동일하지만, 잘못된 인수가 전달되면 NULL을 반환합니다.
구문
인자
x— 날짜를 나타내는 문자열 표현입니다.String
반환 값
성공하면 Date 값을, 그렇지 않으면 NULL을 반환합니다. Date 또는 NULL
예시
사용 예시
toDateOrZero
도입 버전: v1.1
입력 값을 Date 타입으로 변환하지만, 잘못된 인수가 전달되면 Date의 하한 값을 반환합니다.
toDate와 동일하지만, 잘못된 인수가 전달되면 Date 타입의 하한 값을 반환합니다.
함께 보기:
구문
인자
x— 문자열 형식의 날짜.String
반환 값
성공적으로 변환되면 Date 값을, 그렇지 않으면 Date의 하한값인 1970-01-01을 반환합니다. Date
예시
사용 예시
toDateTime
도입 버전: v1.1
입력 값을 DateTime 타입으로 변환합니다.
expr이 숫자인 경우, Unix Epoch의 시작 시점부터 경과한 초 수(Unix timestamp)로 해석됩니다.
expr이 String인 경우, Unix timestamp 또는 날짜 / 날짜와 시간의 문자열 표현으로 해석될 수 있습니다.
이 때문에 짧은 숫자 문자열(최대 4자리)의 파싱은 모호성으로 인해 명시적으로 비활성화되어 있습니다. 예를 들어 문자열 '1999'는 연도(불완전한 Date / DateTime 문자열 표현)이거나 Unix timestamp일 수도 있습니다. 더 긴 숫자 문자열은 허용됩니다.
구문
인수
반환 값
DateTime 형식의 날짜와 시간 값을 반환합니다. DateTime
예제
사용 예제
toDateTime32
도입된 버전: v20.9
입력 값을 DateTime 타입으로 변환합니다.
String, FixedString, Date, Date32, DateTime 또는 숫자 타입((U)Int*, Float*, Decimal)에서의 변환을 지원합니다.
DateTime32는 DateTime과 비교해 확장된 범위를 제공하며, 1900-01-01부터 2299-12-31까지의 날짜를 지원합니다.
구문
인수
x— 변환할 입력값입니다.String또는FixedString또는UInt*또는Float*또는Date또는DateTime또는DateTime64timezone— 선택 사항입니다. 반환되는DateTime값의 시간대입니다.String
반환 값
변환된 입력값을 반환합니다. DateTime
예시
값이 범위 내에 있는 경우
정밀도를 지정한 10진수로
타임존 포함
toDateTime64
도입 버전: v20.1
입력값을 DateTime64 타입의 값으로 변환합니다.
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 식(expression).Expressionscale— 틱 크기(정밀도): 10^(-scale) 초.UInt8timezone— 선택 사항. 지정된DateTime64객체의 시간대.String
반환 값
하위 초 단위 정밀도를 갖는 달력 날짜 및 시각을 반환합니다. DateTime64
예시
값이 허용 범위 내에 있는 경우
지정된 정밀도의 decimal로
타임존 포함
toDateTime64OrDefault
도입 버전: v21.11
toDateTime64와 같이, 이 FUNCTION은 입력값을 DateTime64 타입의 값으로 변환하지만, 유효하지 않은 인수가 전달되었을 때는 DateTime64의 기본값 또는 사용자가 지정한 기본값을 반환합니다.
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다.String또는(U)Int*또는Float*scale— 틱 크기(정밀도)입니다. 10^-precision 초 단위입니다.UInt8timezone— 선택 사항입니다. 시간대입니다.Stringdefault— 선택 사항입니다. 파싱에 실패한 경우 반환할 기본값입니다.DateTime64
반환 값
변환에 성공하면 DateTime64 타입의 값을 반환하며, 그렇지 않은 경우 전달된 기본값이 있으면 해당 값을, 없으면 1970-01-01 00:00:00.000을 반환합니다. DateTime64
예시
성공적인 변환
형 변환 실패
toDateTime64OrNull
도입 버전: v20.1
입력값을 DateTime64 타입 값으로 변환하지만, 유효하지 않은 인수가 전달되면 NULL을 반환합니다.
toDateTime64와 동일하지만, 유효하지 않은 인수가 전달되면 NULL을 반환합니다.
구문
인수
x— 시간 및 서브초 정밀도를 포함하는 날짜의 문자열 표현입니다.String
반환 값
성공한 경우 DateTime64 값을, 그렇지 않은 경우 NULL을 반환합니다. DateTime64 또는 NULL
예시
사용 예시
toDateTime64OrZero
도입된 버전: v20.1
입력 값을 DateTime64 타입의 값으로 변환하지만, 잘못된 인수가 전달된 경우 DateTime64의 하한 값을 반환합니다. toDateTime64와 동일하지만, 잘못된 인수가 전달된 경우 DateTime64의 하한 값을 반환합니다.
관련 항목:
구문
인수
x— 시간과 초 이하 단위까지의 정밀도를 포함한 날짜의 문자열 표현.String
반환 값
성공하면 DateTime64 값을 반환하고, 그렇지 않으면 DateTime64의 하한값인 1970-01-01 00:00:00.000을 반환합니다. DateTime64
예제
사용 예제
toDateTimeOrDefault
도입 버전: v21.11
toDateTime과 동일하지만, 변환에 실패하는 경우 기본값을 반환합니다. 기본값은 세 번째 인자가 지정된 경우 해당 값이고, 지정되지 않은 경우 DateTime의 최솟값입니다.
구문
인자
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다.String또는(U)Int*또는Float*timezone— 선택 사항입니다. 시간대입니다.Stringdefault— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.DateTime
반환 값
성공한 경우 DateTime 타입의 값을 반환하고, 그렇지 않으면 전달된 기본값을 반환하며, 기본값이 없으면 1970-01-01 00:00:00을 반환합니다. DateTime
예시
성공한 변환
변환 실패
toDateTimeOrNull
도입된 버전: v1.1
입력값을 DateTime 타입의 값으로 변환하지만, 잘못된 인자가 전달되면 NULL을 반환합니다.
toDateTime와 동일하지만, 잘못된 인자가 전달되면 NULL을 반환합니다.
구문
인수
x— 시간 정보를 포함한 날짜의 문자열 형식입니다.String
반환 값
성공하면 DateTime 값을, 그렇지 않으면 NULL을 반환합니다. DateTime 또는 NULL
예제
사용 예제
toDateTimeOrZero
도입 버전: v1.1
입력값을 DateTime 타입의 값으로 변환하지만, 잘못된 인수가 전달되면 DateTime 하한값을 반환합니다. toDateTime과 동일하게 동작하지만, 잘못된 인수가 전달될 경우 DateTime 하한값을 반환합니다.
구문
인수
x— 시간 정보를 포함한 날짜의 문자열 표현입니다.String
반환 값
성공하면 DateTime 값을 반환하고, 그렇지 않으면 DateTime의 최소값인 1970-01-01 00:00:00을 반환합니다. DateTime
예시
사용 예시
toDecimal128
도입된 버전: v18.12
입력 값을 스케일 S를 가지는 Decimal(38, S) 타입의 값으로 변환합니다.
오류가 발생하면 예외를 발생시킵니다.
지원되는 인수:
- (U)Int* 타입의 값 또는 해당 값의 문자열 표현.
- Float* 타입의 값 또는 해당 값의 문자열 표현.
지원되지 않는 인수:
- Float* 값
NaN및Inf의 값 또는 이 값들의 문자열 표현(대소문자 구분 없음). - 이진수 및 16진수 값의 문자열 표현, 예:
SELECT toDecimal128('0xc0fe', 1);.
expr의 값이 Decimal128의 범위 (-1*10^(38 - S), 1*10^(38 - S))를 초과하면 오버플로가 발생할 수 있습니다.
소수 부분의 초과 자릿수는 버려지며(반올림되지 않음),
정수 부분의 초과 자릿수는 예외를 발생시킵니다.
변환 과정에서 여분의 자릿수가 잘려 나가고, 연산이 부동소수점 명령어를 사용하여 수행되므로 Float32/Float64 입력을 사용할 때 예상과 다르게 동작할 수 있습니다.
예를 들어, toDecimal128(1.15, 2)는 1.15 * 100이 부동소수점에서 114.99가 되기 때문에 1.14와 같습니다.
문자열 입력을 사용하면 내부적으로 정수 타입을 사용하여 연산할 수 있습니다: toDecimal128('1.15', 2) = 1.15
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다.ExpressionS— 0 이상 38 이하의 스케일 매개변수로, 숫자의 소수부가 가질 수 있는 자릿수를 지정합니다.UInt8
반환 값
Decimal(38, S) 타입의 값을 반환합니다. Decimal128(S)
예시
사용 예시
toDecimal128OrDefault
도입 버전: v21.11
toDecimal128과(와) 마찬가지로, 이 FUNCTION은 입력값을 Decimal(38, S) 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다.
구문
인수
expr— 숫자를 문자열로 표현한 값입니다.StringS— 0에서 38 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수 개수를 지정합니다.UInt8default— 선택 사항입니다. Decimal128(S) 타입으로의 파싱이 실패했을 때 반환할 기본값입니다.Decimal128(S)
반환 값
성공한 경우 Decimal(38, S) 타입의 값을, 그렇지 않은 경우 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. Decimal128(S)
예시
성공적인 변환
형 변환 실패
toDecimal128OrNull
도입 버전: v20.1
입력 값을 Decimal(38, S) 타입의 값으로 변환하지만, 오류가 발생한 경우 NULL을 반환합니다.
toDecimal128와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 NULL을 반환합니다.
지원되는 인수:
- (U)Int* 타입의 값 또는 해당 값의 문자열 표현.
- Float* 타입의 값 또는 해당 값의 문자열 표현.
지원되지 않는 인수(NULL 반환):
- Float* 값
NaN및Inf값 또는 해당 값의 문자열 표현(대소문자 구분 없음). - 2진수 및 16진수 값의 문자열 표현.
Decimal128의 범위를 초과하는 값:(-1*10^(38 - S), 1*10^(38 - S)).
관련 항목:
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다.ExpressionS— 0과 38 사이의 스케일(scale) 매개변수로, 숫자의 소수부가 가질 수 있는 자릿수 개수를 지정합니다.UInt8
반환 값
성공하면 Decimal(38, S) 값을 반환하고, 그렇지 않으면 NULL을 반환합니다. Decimal128(S) 또는 NULL
예제
사용 예제
toDecimal128OrZero
도입 버전: v20.1
입력 값을 Decimal(38, S) 타입의 값으로 변환하지만, 오류가 발생하는 경우 0을 반환합니다.
toDecimal128과 동일하지만, 변환 오류 시 예외를 발생시키는 대신 0을 반환합니다.
지원되는 인자:
- (U)Int* 타입 값 또는 해당 값의 문자열 표현.
- Float* 타입 값 또는 해당 값의 문자열 표현.
지원되지 않는 인자(0을 반환):
- Float* 타입의
NaN및Inf값 또는 해당 값의 문자열 표현(대소문자 구분 없음). - 2진수 및 16진수 값의 문자열 표현.
입력 값이 Decimal128의 경계 (-1*10^(38 - S), 1*10^(38 - S))를 초과하면 함수는 0을 반환합니다.
구문
인수
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다.ExpressionS— 0에서 38 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수 개수를 지정합니다.UInt8
반환 값
성공한 경우 Decimal(38, S) 값을 반환하고, 그렇지 않으면 0을 반환합니다. Decimal128(S)
예제
기본 사용 예
toDecimal256
도입된 버전: v20.8
입력 값을 스케일이 S인 Decimal(76, S) 타입 값으로 변환합니다. 오류가 발생하면 예외를 발생시킵니다.
지원되는 인수:
- (U)Int* 타입 값 또는 해당 문자열 표현.
- Float* 타입 값 또는 해당 문자열 표현.
지원되지 않는 인수:
- Float* 값
NaN및Inf(대소문자 구분 없음) 또는 해당 문자열 표현. - 이진 및 16진수 값의 문자열 표현(예:
SELECT toDecimal256('0xc0fe', 1);).
expr 값이 Decimal256의 범위 (-1*10^(76 - S), 1*10^(76 - S))를 초과하면 오버플로가 발생할 수 있습니다.
소수부에서 초과된 자릿수는 (반올림 없이) 버려집니다.
정수부에서 초과된 자릿수는 예외를 발생시킵니다.
변환 과정에서 추가 자릿수가 버려지며, 연산이 부동소수점 명령어를 사용하여 수행되므로 Float32/Float64 입력으로 작업할 때 예기치 않은 방식으로 동작할 수 있습니다.
예를 들어, toDecimal256(1.15, 2)는 1.14와 같습니다. 이는 부동소수점에서 1.15 * 100이 114.99가 되기 때문입니다.
문자열 입력을 사용하면 기본 정수 타입을 사용하여 연산할 수 있습니다: toDecimal256('1.15', 2) = 1.15
Syntax
인자
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다.ExpressionS— 0 이상 76 이하의 스케일(scale) 매개변수로, 소수 부분이 가질 수 있는 자릿수의 개수를 지정합니다.UInt8
반환 값
Decimal(76, S) 타입의 값을 반환합니다. Decimal256(S)
예시
사용 예시
toDecimal256OrDefault
도입 버전: v21.11
toDecimal256와 마찬가지로 이 FUNCTION은 입력값을 Decimal(76, S) 형식의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다.
구문
인수
expr— 숫자를 String 형식으로 표현한 값입니다.StringS— 0부터 76 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수 개수를 지정합니다.UInt8default— 선택 사항입니다. Decimal256(S) 타입으로 파싱(parse)하지 못했을 때 반환할 기본값입니다.Decimal256(S)
반환 값
성공하면 Decimal(76, S) 타입의 값을 반환하고, 그렇지 않으면 기본값이 전달된 경우 해당 값을, 그렇지 않은 경우 0을 반환합니다. Decimal256(S)
예시
변환 성공 예
변환 실패
toDecimal256OrNull
도입 버전: v20.8
입력 값을 Decimal(76, S) 형식의 값으로 변환하지만, 오류가 발생하는 경우 NULL을 반환합니다.
toDecimal256와 유사하지만, 변환 오류 시 예외를 던지는 대신 NULL을 반환합니다.
지원되는 인수:
- (U)Int* 형식의 값 또는 해당 문자열 표현.
- Float* 형식의 값 또는 해당 문자열 표현.
지원되지 않는 인수(NULL 반환):
- Float* 형식의
NaN,Inf값 또는 해당 문자열 표현(대소문자를 구분하지 않습니다). - 2진수 및 16진수 값의 문자열 표현.
Decimal256의 범위를 초과하는 값:(-1 * 10^(76 - S), 1 * 10^(76 - S)).
관련 항목:
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다.ExpressionS— 0에서 76 사이의 스케일 매개변수로, 숫자의 소수 부분에서 허용되는 자릿수의 개수를 지정합니다.UInt8
반환 값
성공하면 Decimal(76, S) 값을 반환하고, 그렇지 않으면 NULL을 반환합니다. Decimal256(S) 또는 NULL
예시
사용 예시
toDecimal256OrZero
도입 버전: v20.8
입력 값을 Decimal(76, S) 타입의 값으로 변환하지만, 오류가 발생한 경우 0을 반환합니다.
toDecimal256과 유사하지만, 변환 오류 시 예외를 던지는 대신 0을 반환합니다.
지원되는 인수:
- (U)Int* 타입 값 또는 해당 문자열 표현.
- Float* 타입 값 또는 해당 문자열 표현.
지원되지 않는 인수(0을 반환):
NaN및Inf와 같은 Float* 값 또는 해당 문자열 표현(대소문자 구분 없음).- 2진수 및 16진수 값의 문자열 표현.
입력 값이 Decimal256의 범위 (-1*10^(76 - S), 1*10^(76 - S))를 초과하는 경우, 함수는 0을 반환합니다.
함께 참고:
구문
인수
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다.ExpressionS— 0에서 76 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수를 지정합니다.UInt8
반환 값
성공한 경우 Decimal(76, S) 값을, 그렇지 않으면 0을 반환합니다. Decimal256(S)
예시
사용 예시
toDecimal32
도입 버전: v18.12
입력값을 스케일이 S인 Decimal(9, S) 타입의 값으로 변환합니다. 오류가 발생하는 경우 예외를 발생시킵니다.
지원되는 인수:
- (U)Int* 타입 값 또는 해당 문자열 표현.
- Float* 타입 값 또는 해당 문자열 표현.
지원되지 않는 인수:
- Float* 값
NaN및Inf또는 해당 문자열 표현(대소문자 무시). - 이진수 및 16진수 값의 문자열 표현. 예:
SELECT toDecimal32('0xc0fe', 1);.
expr의 값이 Decimal32의 범위 (-1*10^(9 - S), 1*10^(9 - S))를 초과하면 오버플로가 발생할 수 있습니다.
소수부의 자릿수가 너무 많으면 초과분은 버려지며(반올림하지 않음),
정수부의 자릿수가 너무 많으면 예외가 발생합니다.
변환 시 초과 자릿수가 잘려 나가며, 부동소수점 명령어를 사용하여 연산이 수행되므로 Float32/Float64 입력을 사용할 때 예상과 다르게 동작할 수 있습니다.
예: toDecimal32(1.15, 2)는 1.14와 같은데, 이는 부동소수점에서 1.15 * 100이 114.99가 되기 때문입니다.
연산이 내부적으로 정수 타입을 사용하도록 하려면 String 입력을 사용할 수 있습니다: toDecimal32('1.15', 2) = 1.15
구문
인수
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다.ExpressionS— 0에서 9 사이의 스케일 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수 개수를 지정합니다.UInt8
반환 값
Decimal(9, S) 타입의 값 Decimal32(S)을(를) 반환합니다.
예시
사용 예시
toDecimal32OrDefault
도입된 버전: v21.11
toDecimal32와 마찬가지로 이 FUNCTION은 입력값을 Decimal(9, S) 타입의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다.
구문
인수
expr— 숫자의 문자열(String) 표현입니다.StringS— 0과 9 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수입니다.UInt8default— 선택 사항입니다. Decimal32(S) 타입으로 파싱에 실패했을 때 반환할 기본값입니다.Decimal32(S)
반환 값
성공하면 Decimal(9, S) 타입의 값을 반환하고, 실패하면 전달된 경우 기본값을, 전달되지 않은 경우 0을 반환합니다. Decimal32(S)
예시
성공적인 변환
변환 실패
toDecimal32OrNull
도입 버전: v20.1
입력 값을 Decimal(9, S) 타입의 값으로 변환하지만, 오류가 발생하는 경우 NULL을 반환합니다.
toDecimal32와 유사하지만, 변환 오류 시 예외를 던지는 대신 NULL을 반환합니다.
지원되는 인수:
- (U)Int* 타입 값 또는 해당 타입의 문자열 표현.
- Float* 타입 값 또는 해당 타입의 문자열 표현.
지원되지 않는 인수(NULL 반환):
- Float* 타입의
NaN및Inf값 또는 해당 문자열 표현(대소문자 구분 없음). - 이진수 및 16진수 값의 문자열 표현.
Decimal32의 범위를 벗어나는 값:(-1*10^(9 - S), 1*10^(9 - S)).
관련 항목:
구문
인자(Arguments)
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다.ExpressionS— 0 이상 9 이하의 스케일(scale) 파라미터로, 숫자의 소수 부분 자릿수 최대 개수를 지정합니다.UInt8
반환 값(Returned value)
성공하면 Decimal(9, S) 값을, 그렇지 않으면 NULL을 반환합니다. Decimal32(S) 또는 NULL
예시(Examples)
사용 예시(Usage example)
toDecimal32OrZero
도입 버전: v20.1
입력값을 Decimal(9, S) 타입의 값으로 변환하지만, 오류가 발생하는 경우 0을 반환합니다.
toDecimal32와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 0을 반환합니다.
지원되는 인수:
- (U)Int* 타입의 값 또는 해당 값의 문자열 표현.
- Float* 타입의 값 또는 해당 값의 문자열 표현.
지원되지 않는 인수(0 반환):
- Float* 값
NaN및Inf(대소문자 구분 없음) 또는 그 문자열 표현. - 2진수 및 16진수 값의 문자열 표현.
입력값이 Decimal32의 범위 (-1*10^(9 - S), 1*10^(9 - S))를 초과하면 함수는 0을 반환합니다.
구문
인수
expr— 숫자 또는 숫자를 문자열로 표현한 값을 반환하는 표현식입니다.ExpressionS— 0에서 9 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수(소수점 이하 자리 수)를 지정합니다.UInt8
반환 값
성공 시 Decimal(9, S) 값을 반환하며, 실패 시 0을 반환합니다. Decimal32(S)
예시
사용 예시
toDecimal64
도입 버전: v18.12
입력 값을 스케일 S를 가진 Decimal(18, S) 형식의 값으로 변환합니다.
오류가 발생하면 예외가 발생합니다.
지원되는 인수:
- (U)Int* 형식의 값 또는 해당 문자열 표현.
- Float* 형식의 값 또는 해당 문자열 표현.
지원되지 않는 인수:
- Float* 값
NaN및Inf(대소문자 구분 안 함) 또는 해당 문자열 표현. - 이진 및 16진수 값의 문자열 표현. 예:
SELECT toDecimal64('0xc0fe', 1);.
expr 값이 Decimal64의 범위 (-1*10^(18 - S), 1*10^(18 - S))를 초과하면 오버플로가 발생할 수 있습니다.
소수 부분의 너무 많은 자릿수는 버려집니다(반올림하지 않음).
정수 부분의 너무 많은 자릿수는 예외를 발생시킵니다.
변환 과정에서 추가 자릿수는 버려지며, 연산이 부동소수점 명령을 사용하여 수행되므로 Float32/Float64 입력을 사용할 때 예상과 다르게 동작할 수 있습니다.
예를 들어 toDecimal64(1.15, 2) 의 결과는 1.14인데, 이는 부동소수점 연산에서 1.15 * 100 이 114.99가 되기 때문입니다.
문자열 입력을 사용하면 연산에 기본 정수 형식을 사용할 수 있습니다: toDecimal64('1.15', 2) = 1.15
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 식.ExpressionS— 0 이상 18 이하의 정수 값으로, 숫자의 소수부가 가질 수 있는 자릿수(스케일)를 지정하는 매개변수.UInt8
반환 값
10진수 값을 반환합니다. Decimal(18, S)
예시
사용 예시
toDecimal64OrDefault
도입 버전: v21.11
toDecimal64와 마찬가지로 이 FUNCTION은 입력값을 Decimal(18, S) 형식의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다.
구문
인수
expr— 숫자를 나타내는 문자열 표현입니다.StringS— 0에서 18 사이의 스케일 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수입니다.UInt8default— 선택 사항입니다. Decimal64(S) 타입으로 파싱하는 데 실패했을 때 반환할 기본값입니다.Decimal64(S)
반환 값
성공하면 Decimal(18, S) 타입의 값이며, 그렇지 않으면 기본값이 전달된 경우 해당 값을, 전달되지 않은 경우 0을 반환합니다. Decimal64(S)
예제
성공적인 변환
변환 실패
toDecimal64OrNull
도입 버전: v20.1
입력 값을 Decimal(18, S) 타입의 값으로 변환하지만, 오류가 발생한 경우 NULL을 반환합니다.
toDecimal64와 같지만, 변환 오류 시 예외를 던지는 대신 NULL을 반환합니다.
지원하는 인수:
- 타입이 (U)Int*인 값 또는 해당 값의 문자열 표현.
- 타입이 Float*인 값 또는 해당 값의 문자열 표현.
지원되지 않는 인수(NULL 반환):
- Float* 값
NaN및Inf의 문자열 표현(대소문자를 구분하지 않습니다). - 이진수 및 16진수 값의 문자열 표현.
Decimal64의 범위를 초과하는 값:(-1*10^(18 - S), 1*10^(18 - S)).
함께 보기:
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다.ExpressionS— 0 이상 18 이하의 스케일(scale) 매개변수로, 숫자의 소수 부분에서 사용할 수 있는 자릿수입니다.UInt8
반환 값
성공한 경우 Decimal(18, S) 값을 반환하고, 그렇지 않으면 NULL을 반환합니다. Decimal64(S) 또는 NULL
예시
사용 예시
toDecimal64OrZero
도입된 버전: v20.1
입력 값을 Decimal(18, S) 타입의 값으로 변환하지만, 오류가 발생하는 경우 0을 반환합니다.
toDecimal64와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 0을 반환합니다.
지원되는 인수:
- (U)Int* 타입의 값 또는 그 문자열 표현.
- Float* 타입의 값 또는 그 문자열 표현.
지원되지 않는 인수(0 반환):
- Float* 값
NaN및Inf의 값 또는 그 문자열 표현(대소문자 구분 없음). - 이진 및 16진수 값의 문자열 표현.
입력 값이 Decimal64의 경계 값 (-1*10^(18 - S), 1*10^(18 - S))를 벗어나면 함수는 0을 반환합니다.
함께 보기:
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다.ExpressionS— 0과 18 사이의 스케일(scale) 매개변수로, 숫자의 소수 부분이 가질 수 있는 자릿수입니다.UInt8
반환 값
성공 시 Decimal(18, S) 값을 반환하고, 그렇지 않으면 0을 반환합니다. Decimal64(S)
예시
사용 예시
toDecimalString
도입된 버전: v23.3
숫자 값을 지정된 소수 자릿수의 String으로 변환합니다.
이 FUNCTION은 입력값을 지정된 소수 자릿수로 반올림합니다. 입력값의 소수 자릿수가 요청된 자릿수보다 적으면, 결과가 지정된 소수 자릿수와 정확히 일치하도록 끝을 0으로 채웁니다.
Syntax
인수
number— 문자열로 변환할 숫자 값입니다. Int, UInt, Float, Decimal 모든 숫자형 타입을 허용합니다.Int8또는Int16또는Int32또는Int64또는UInt8또는UInt16또는UInt32또는UInt64또는Float32또는Float64또는Decimalscale— 소수 부분에 표시할 자릿수입니다. 필요하면 결과가 반올림됩니다.UInt8
반환 값
정확히 지정된 개수의 소수 자릿수를 가진 숫자의 문자열(String) 표현을 반환합니다. String
예시
숫자를 반올림하고 형식 지정하기
0으로 채우기
서로 다른 숫자형
toFixedString
도입 버전: v1.1
String 인수를 FixedString(N) 타입(길이가 N으로 고정된 문자열)으로 변환합니다.
문자열의 바이트 수가 N보다 적으면 오른쪽에 널 바이트(null byte)로 패딩됩니다. 문자열의 바이트 수가 N보다 많으면 예외가 발생합니다.
구문
인수
s— 변환할 문자열입니다.StringN— 결과로 생성될FixedString의 길이입니다.const UInt*
반환 값
길이가 N인 FixedString을 반환합니다. FixedString(N)
예시
사용 예시
toFloat32
도입 버전: v1.1
입력 값을 Float32 타입의 값으로 변환합니다. 오류가 발생하면 예외를 발생시킵니다.
지원되는 인수:
- (U)Int* 타입의 값.
- (U)Int8/16/32/128/256의 문자열 표현.
NaN및Inf를 포함한 Float* 타입의 값.NaN및Inf를 포함한 Float*의 문자열 표현(대소문자 구분 없음).
지원되지 않는 인수:
SELECT toFloat32('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
같이 보기:
구문
인자
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다.Expression
반환 값
32비트 부동 소수점 값을 반환합니다. Float32
예시
사용 예시
toFloat32OrDefault
도입 버전: v21.11
toFloat32와 마찬가지로 이 함수는 입력값을 Float32 타입의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다.
default 값이 전달되지 않으면 오류가 발생했을 때 0이 반환됩니다.
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.Float32
반환 값
성공하면 Float32 타입의 값을 반환하고, 그렇지 않으면 기본값이 지정된 경우 해당 값을, 지정되지 않은 경우 0을 반환합니다. Float32
예제
성공적인 변환
변환 실패
toFloat32OrNull
도입 버전: v1.1
입력 값을 Float32 타입 값으로 변환하지만, 오류가 발생하는 경우 NULL을 반환합니다.
toFloat32와 같지만, 변환 오류 시 예외를 던지는 대신 NULL을 반환합니다.
지원되는 인자:
- (U)Int* 타입 값.
- (U)Int8/16/32/128/256의 문자열 표현.
NaN및Inf를 포함한 Float* 타입 값.NaN및Inf를 포함한 Float*의 문자열 표현(대소문자를 구분하지 않음).
지원되지 않는 인자(NULL 반환):
SELECT toFloat32OrNull('0xc0fe');와 같은 2진수 및 16진수 값의 문자열 표현.- 잘못된 문자열 형식.
함께 보기:
문법
인자
x— 숫자를 나타내는 문자열입니다.String
반환 값
성공하면 32비트 Float 값을 반환하고, 그렇지 않으면 NULL을 반환합니다. Float32 또는 NULL
예시
사용 예시
toFloat32OrZero
도입 버전: v1.1
입력 값을 Float32 타입의 값으로 변환합니다. 이때 오류가 발생하면 0을 반환합니다.
toFloat32와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 0을 반환합니다.
함께 보기:
구문
인자
x— 숫자를 나타내는 문자열입니다.String
반환 값
성공 시 32비트 부동소수점(Float) 값을 반환하고, 그렇지 않으면 0을 반환합니다. Float32
예시
사용 예시
toFloat64
도입 버전: v1.1
입력 값을 Float64 타입의 값으로 변환합니다.
오류가 발생하면 예외가 발생합니다.
지원되는 인수:
- (U)Int* 타입의 값
- (U)Int8/16/32/128/256의 문자열 표현
NaN및Inf를 포함한 Float* 타입의 값NaN및Inf를 포함한 Float* 타입의 문자열 표현(대소문자 구분 없음)
지원되지 않는 인수:
SELECT toFloat64('0xc0fe');와 같은 2진수 및 16진수 값의 문자열 표현
추가 참고:
Syntax
인수
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다.Expression
반환 값
64비트 부동소수점 값을 반환합니다. Float64
예제
사용 예제
toFloat64OrDefault
도입 버전: v21.11
toFloat64와 마찬가지로, 이 FUNCTION은 입력값을 Float64 형식의 값으로 변환하지만 오류가 발생한 경우 기본값을 반환합니다.
default 값을 전달하지 않으면 오류가 발생했을 때 0이 반환됩니다.
문법
인수
expr— 숫자 또는 숫자 형태의 문자열을 반환하는 표현식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.Float64
반환 값
변환에 성공하면 Float64 타입의 값을 반환하고, 그렇지 않으면 전달된 경우 기본값을, 전달되지 않은 경우 0을 반환합니다. Float64
예시
변환 성공 사례
변환 실패
toFloat64OrNull
도입 버전: v1.1
입력값을 Float64 타입의 값으로 변환하지만, 오류가 발생하는 경우 NULL을 반환합니다.
toFloat64와 유사하지만, 변환 오류 시 예외를 던지는 대신 NULL을 반환합니다.
지원되는 인수:
- (U)Int* 타입의 값.
- (U)Int8/16/32/128/256의 문자열 표현.
NaN및Inf를 포함한 Float* 타입의 값.NaN및Inf를 포함한 Float* 타입의 문자열 표현(대소문자를 구분하지 않음).
지원되지 않는 인수(NULL 반환):
- 이진 및 16진수 값의 문자열 표현(예:
SELECT toFloat64OrNull('0xc0fe');). - 잘못된 문자열 형식.
함께 보기:
구문
인수
x— 숫자를 나타내는 문자열입니다.String
반환 값
성공하면 64비트 부동 소수점 값을, 그렇지 않으면 NULL을 반환합니다. Float64 또는 NULL
예시
사용 예시
toFloat64OrZero
도입 버전: v1.1
입력 값을 Float64 타입의 값으로 변환하지만, 오류가 발생하는 경우 0을 반환합니다.
toFloat64와 같지만, 변환 오류 시 예외를 발생시키는 대신 0을 반환합니다.
함께 보기:
구문
인수
x— 숫자를 나타내는 문자열입니다.String
반환 값
성공하면 64비트 부동 소수점 값을 반환하고, 그렇지 않으면 0을 반환합니다. Float64
예제
사용 예제
toInt128
도입 버전: v1.1
입력 값을 Int128 타입의 값으로 변환합니다. 오류가 발생하면 예외를 던집니다. 이 함수는 0을 향해 반올림하는 방식을 사용하므로, 숫자의 소수 자릿수를 잘라냅니다.
지원되는 인수:
- (U)Int* 타입 값 또는 해당 값의 문자열 표현.
- Float* 타입 값.
지원되지 않는 인수:
NaN및Inf를 포함한 Float* 값의 문자열 표현.SELECT toInt128('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력 값을 Int128 범위 내에서 표현할 수 없는 경우, 결과에 오버플로우 또는 언더플로우가 발생합니다. 이는 오류로 간주되지 않습니다.
함께 보기:
구문
인자
expr— 숫자 값 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다.Expression
반환 값
128비트 정수 값을 반환합니다. Int128
예시
사용 예시
toInt128OrDefault
도입 버전: v21.11
toInt128과 같이, 이 함수는 입력값을 Int128 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다.
default 값이 전달되지 않으면 오류가 발생한 경우 0이 반환됩니다.
문법
인수
expr— 숫자 또는 숫자를 나타내는 문자열 표현을 반환하는 식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.Int128
반환 값
성공한 경우 Int128 타입의 값을 반환하며, 실패한 경우 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. Int128
예제
성공적인 변환
변환 실패
toInt128OrNull
도입 버전: v20.8
toInt128과(와) 마찬가지로 이 FUNCTION은 입력값을 Int128 타입의 값으로 변환하지만, 오류가 발생하는 경우 NULL을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현
지원되지 않는 인수(NULL 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현SELECT toInt128OrNull('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현
입력값을 Int128의 범위 내에서 표현할 수 없으면 결과에서 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다.
관련 항목:
Syntax
인수
x— 숫자를 String 형식으로 표현한 값입니다.String
반환 값
변환에 성공하면 Int128 타입의 값을, 실패하면 NULL을 반환합니다. Int128 또는 NULL
예제
사용 예제
toInt128OrZero
도입된 버전: v20.8
입력 값을 Int128 데이터 타입으로 변환하지만 오류가 발생하는 경우 0을 반환합니다.
toInt128와 유사하지만, 예외를 던지는 대신 0을 반환합니다.
함께 보기:
구문
인수
반환 값
변환된 입력값을 반환하며, 변환에 실패하면 0을 반환합니다. 반환 타입: Int128
예시
사용 예시
변환에 실패하면 0을 반환합니다
toInt16
도입된 버전: v1.1
입력값을 Int16 타입의 값으로 변환합니다.
오류가 발생하면 예외를 발생시킵니다.
지원되는 인수:
- (U)Int* 타입의 값 또는 해당 문자열 표현.
- Float* 타입의 값.
지원되지 않는 인수:
NaN및Inf를 포함한 Float* 값의 문자열 표현.SELECT toInt16('0xc0fe');와 같은 2진수 및 16진수 값의 문자열 표현.
입력값을 Int16의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
예: SELECT toInt16(32768) == -32768;.
이 함수는 0으로의 반올림(rounding towards zero)을 사용하며, 이는 숫자의 소수 부분을 잘라낸다는 의미입니다.
함께 보기:
구문
인자
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다.Expression
반환 값
16비트 정수 값을 반환합니다. Int16
예시
사용 예시
toInt16OrDefault
도입 버전: v21.11
toInt16과 마찬가지로 이 함수는 입력값을 Int16 타입의 값으로 변환하지만, 오류가 발생할 경우 기본값을 반환합니다.
default 값이 지정되지 않은 경우, 오류가 발생하면 0이 반환됩니다.
구문
인자
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패한 경우 반환할 기본값입니다.Int16
반환 값
성공하면 Int16 타입의 값을 반환하고, 그렇지 않으면 기본값이 지정된 경우 해당 값을, 지정되지 않은 경우 0을 반환합니다. Int16
예시
변환 성공 예
변환 실패
toInt16OrNull
도입된 버전: v1.1
toInt16과 마찬가지로 이 FUNCTION은 입력 값을 Int16 타입의 값으로 변환하지만, 오류가 발생하는 경우 NULL을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현
지원되지 않는 인수(NULL 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현- 이진수 및 16진수 값의 문자열 표현(예:
SELECT toInt16OrNull('0xc0fe');)
입력 값을 Int16의 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다.
함께 보기:
구문
인수
x— 숫자를 문자열로 표현한 값입니다.String
반환 값
Int16 타입의 값을 반환하며, 변환에 실패하면 NULL을 반환합니다. Int16 또는 NULL
예시
사용 예시
toInt16OrZero
도입 버전: v1.1
toInt16와 마찬가지로 이 FUNCTION은 입력 값을 Int16 타입의 값으로 변환하지만, 오류가 발생하는 경우 0을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현.
지원되지 않는 인수(0 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.- 2진수 및 16진수 값의 문자열 표현(예:
SELECT toInt16OrZero('0xc0fe');).
입력 값을 Int16의 범위 내에서 표현할 수 없으면 결과에서 오버플로 또는 언더플로가 발생합니다. 이 동작은 오류로 간주되지 않습니다.
함께 보기:
구문
인수
x— 숫자를 나타내는 문자열입니다.String
반환 값
Int16 타입의 값을 반환하며, 변환이 실패한 경우 0을 반환합니다. Int16
예시
사용 예시
toInt256
도입 버전: v1.1
입력 값을 Int256 형식의 값으로 변환합니다. 오류가 발생하면 예외를 발생시킵니다. 이 함수는 0을 향한 반올림을 사용하므로, 숫자의 소수 자릿수를 절사합니다.
지원되는 인수:
- 형식이 (U)Int*인 값 또는 해당 문자열 표현입니다.
- 형식이 Float*인 값입니다.
지원되지 않는 인수:
NaN및Inf를 포함하여, Float* 값의 문자열 표현입니다.SELECT toInt256('0xc0fe');와 같은 2진수 및 16진수 값의 문자열 표현입니다.
입력 값을 Int256의 범위 내에서 표현할 수 없는 경우, 결과가 오버플로 또는 언더플로를 일으킵니다. 이는 오류로 간주되지 않습니다.
함께 보기:
구문
인수
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다.Expression
반환되는 값
256비트 정수 값을 반환합니다. Int256
예제
사용 예제
toInt256OrDefault
도입 버전: v21.11
toInt256과 유사하게 이 FUNCTION은 입력 값을 Int256 타입의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다.
default 값이 전달되지 않으면 오류 발생 시 0이 반환됩니다.
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.Int256
반환 값
성공 시 Int256 타입의 값을 반환하고, 실패한 경우 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. Int256
예시
변환 성공 예시
변환 실패
toInt256OrNull
도입 버전: v20.8
toInt256와 같이, 이 FUNCTION은 입력값을 Int256 타입의 값으로 변환하지만, 오류가 발생한 경우 NULL을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현.
지원되지 않는 인수(NULL을 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.- 2진수 및 16진수 값의 문자열 표현. 예:
SELECT toInt256OrNull('0xc0fe');.
입력값을 Int256의 범위 안에서 표현할 수 없으면 결과에 오버플로우 또는 언더플로우가 발생합니다. 이는 오류로 간주되지 않습니다.
관련 항목:
구문
인수
x— 숫자를 나타내는 String 형식의 문자열입니다.String
반환 값
변환이 성공하면 Int256 타입의 값을 반환하고, 실패하면 NULL을 반환합니다. Int256 또는 NULL
예시
사용 예시
toInt256OrZero
도입 버전: v20.8
입력값을 Int256 타입으로 변환하지만, 오류가 발생할 경우 0을 반환합니다.
toInt256과 동일하지만, 예외를 발생시키는 대신 0을 반환합니다.
관련 항목:
구문
인수
반환값
변환된 입력값을 반환하고, 변환에 실패하면 0을 반환합니다. Int256
예시
사용 예시
변환 실패 시 0을 반환
toInt32
도입 버전: v1.1
입력 값을 Int32 타입의 값으로 변환합니다.
오류가 발생하면 예외를 발생시킵니다.
지원되는 인수:
- (U)Int* 타입의 값 또는 그 문자열 표현.
- Float* 타입의 값.
지원되지 않는 인수:
NaN및Inf를 포함한 Float* 값의 문자열 표현.SELECT toInt32('0xc0fe');와 같은 2진수 및 16진수 값의 문자열 표현.
입력 값을 Int32의 범위 내에서 표현할 수 없는 경우 결과가 오버플로 또는 언더플로됩니다.
이는 오류로 간주되지 않습니다.
예: SELECT toInt32(2147483648) == -2147483648;
이 함수는 0을 향한 반올림을 사용하므로 숫자의 소수 자릿수를 잘라냅니다.
함께 보기:
구문
인수
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다.Expression
반환값
32비트 정수 값을 반환합니다. Int32
예시
사용 예시
toInt32OrDefault
도입 버전: v21.11
toInt32와 마찬가지로, 이 함수는 입력값을 Int32 형식의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다.
default 값이 지정되지 않은 경우, 오류 발생 시 0이 반환됩니다.
구문
인자
expr— 숫자 또는 숫자를 문자열로 표현한 값을 반환하는 식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.Int32
반환 값
성공한 경우 Int32 타입의 값을 반환하며, 실패한 경우 인자로 기본값이 전달되었으면 해당 기본값을, 전달되지 않았으면 0을 반환합니다. Int32
예시
성공적인 변환
변환 실패
toInt32OrNull
도입 버전: v1.1
toInt32와 마찬가지로 이 FUNCTION은 입력값을 Int32 타입의 값으로 변환하지만, 오류가 발생할 경우 NULL을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현.
지원되지 않는 인수(NULL 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.- 예:
SELECT toInt32OrNull('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력값을 Int32 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다.
관련 항목:
구문
인자
x— 숫자를 나타내는 문자열입니다.String
반환 값
변환이 성공하면 Int32 타입의 값을, 실패하면 NULL을 반환합니다. Int32 또는 NULL
예시
사용 예시
toInt32OrZero
도입 버전: v1.1
toInt32와 마찬가지로 이 함수는 입력값을 Int32 타입의 값으로 변환하지만, 오류가 발생하면 0을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현.
지원되지 않는 인수(0 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.- 이진수 및 16진수 값의 문자열 표현. 예:
SELECT toInt32OrZero('0xc0fe');.
입력값을 Int32의 범위 내에서 표현할 수 없는 경우 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다.
관련 항목:
구문
인자
x— 숫자를 나타내는 String 형식의 문자열입니다.String
반환 값
Int32 타입의 값을 반환하며, 변환에 실패하면 0을 반환합니다. Int32
예시
사용 예시
toInt64
도입 버전: v1.1
입력 값을 Int64 타입의 값으로 변환합니다.
오류가 발생하면 예외를 발생시킵니다.
지원되는 인수:
- (U)Int* 타입의 값 또는 해당 문자열 표현.
- Float* 타입의 값.
지원되지 않는 인수:
NaN,Inf를 포함한 Float* 값의 문자열 표현SELECT toInt64('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력 값을 Int64의 범위 내에서 표현할 수 없는 경우 결과에 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
예를 들어: SELECT toInt64(9223372036854775808) == -9223372036854775808;
이 함수는 0 방향으로 반올림(rounding towards zero)을 사용하므로, 숫자의 소수 자릿수를 잘라냅니다.
함께 보기:
구문
인자
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다. 지원되는 입력: 타입이 (U)Int인 값 및 해당 값의 문자열 표현, 타입이 Float인 값. 지원되지 않는 입력: NaN 및 Inf를 포함한 Float* 값의 문자열 표현, 2진수 및 16진수 값의 문자열 표현.Expression
반환 값
64비트 정수 값을 반환합니다. Int64
예시
사용 예시
toInt64OrDefault
도입 버전: v21.11
toInt64와 같이, 이 FUNCTION은 입력 값을 Int64 유형의 값으로 변환하지만 오류가 발생하는 경우 기본값을 반환합니다.
default 값이 지정되지 않으면 오류가 발생할 때 0이 반환됩니다.
구문
인자
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.Int64
반환 값
성공하면 Int64 타입의 값을 반환합니다. 실패하면 기본값이 전달된 경우 해당 값을, 그렇지 않으면 0을 반환합니다. Int64
예시
변환 성공
변환 실패
toInt64OrNull
도입 버전: v1.1
toInt64와 마찬가지로 이 함수는 입력값을 Int64 타입의 값으로 변환하지만, 오류가 발생하는 경우 NULL을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현.
지원되지 않는 인수(NULL 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.SELECT toInt64OrNull('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력값을 Int64의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 처리되지 않습니다.
함께 보기:
구문
인수
x— 숫자를 표현하는 String 형식입니다.String
반환 값
변환에 성공하면 Int64 타입의 값을 반환하고, 실패하면 NULL을 반환합니다. Int64 또는 NULL
예시
사용 예시
toInt64OrZero
도입: v1.1
입력 값을 Int64 타입으로 변환합니다. 이때 오류가 발생하면 0을 반환합니다.
toInt64와 유사하지만, 예외를 발생시키는 대신 0을 반환합니다.
함께 보기:
구문
인수
반환 값
변환된 입력값을 반환하며, 변환에 실패하면 0을 반환합니다. Int64
예시
사용 예시
실패한 변환은 0을 반환합니다
toInt8
도입 버전: v1.1
입력 값을 Int8 타입의 값으로 변환합니다.
오류가 발생하면 예외를 발생시킵니다.
지원되는 인수:
- 타입이 (U)Int*인 값 또는 해당 문자열 표현.
- 타입이 Float*인 값.
지원되지 않는 인수:
NaN및Inf를 포함한 Float* 값의 문자열 표현.SELECT toInt8('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력 값을 Int8의 범위 내에서 표현할 수 없으면 결과에서 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
예: SELECT toInt8(128) == -128;.
이 함수는 0 방향 반올림을 사용하므로, 숫자의 소수 자릿수를 잘라냅니다.
함께 참고:
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다.Expression
반환 값
8비트 정수 값을 반환합니다. Int8
예시
사용 예시
toInt8OrDefault
도입 버전: v21.11
toInt8와 마찬가지로, 이 함수는 입력값을 Int8 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다.
default 값을 인수로 전달하지 않으면, 오류가 발생했을 때 0이 반환됩니다.
구문
인자
expr— 숫자 또는 숫자 형식의 문자열을 반환하는 식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.Int8
반환 값
성공하면 Int8 타입의 값을 반환하고, 실패한 경우에는 전달된 기본값이 있으면 그 값을, 없으면 0을 반환합니다. Int8
예시
변환 성공 예시
변환 실패
toInt8OrNull
도입 버전: v1.1
toInt8와 마찬가지로, 이 FUNCTION은 입력값을 Int8 타입의 값으로 변환하지만, 오류가 발생한 경우 NULL을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현.
지원되지 않는 인수(NULL 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.- 이진수 및 16진수 값의 문자열 표현. 예:
SELECT toInt8OrNull('0xc0fe');.
입력값을 Int8의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다.
같이 보기:
구문
인자
x— 숫자를 나타내는 String 표현입니다.String
반환 값
변환에 성공하면 Int8 타입의 값을, 실패하면 NULL을 반환합니다. Int8 또는 NULL
예시
사용 예시
toInt8OrZero
도입 버전: v1.1
toInt8와 마찬가지로, 이 함수는 입력값을 Int8 타입의 값으로 변환하지만, 오류가 발생하는 경우 0을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현.
지원되지 않는 인수(0 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.- 이진수 및 16진수 값의 문자열 표현, 예:
SELECT toInt8OrZero('0xc0fe');.
입력값을 Int8의 범위 내에서 표현할 수 없으면 결과에 오버플로우 또는 언더플로우가 발생합니다. 이는 오류로 간주되지 않습니다.
관련 항목:
문법
인수
x— 숫자를 나타내는String형식의 문자열입니다.String
반환 값
Int8 타입의 값을 반환하며, 변환에 실패한 경우 0을 반환합니다. Int8
예시
사용 예시
toInterval
도입 버전: v25.4
숫자 값과 단위 문자열로부터 Interval 값을 생성합니다.
이 함수는 단위를 문자열 인수로 지정하여 서로 다른 유형의 기간(초, 분, 시간, 일, 주, 월, 분기, 년)을 하나의 함수로 일원화하여 생성할 수 있도록 합니다. 단위 문자열은 대소문자를 구분하지 않습니다.
이는 toIntervalSecond, toIntervalMinute, toIntervalDay 등의 타입별 함수를 호출하는 것과 동일하지만,
단위를 문자열 매개변수로 동적으로 지정할 수 있습니다.
구문
인수
value— 단위의 개수를 나타내는 숫자 값입니다. 임의의 숫자형 데이터일 수 있습니다.Int8또는Int16또는Int32또는Int64또는UInt8또는UInt16또는UInt32또는UInt64또는Float32또는Float64unit— 시간 단위입니다. 상수 문자열이어야 합니다. 유효한 값: 'nanosecond', 'microsecond', 'millisecond', 'second', 'minute', 'hour', 'day', 'week', 'month', 'quarter', 'year'.String
반환 값
지정된 유형의 Interval 값을 반환합니다. 결과 유형은 단위에 따라 IntervalNanosecond, IntervalMicrosecond, IntervalMillisecond, IntervalSecond, IntervalMinute, IntervalHour, IntervalDay, IntervalWeek, IntervalMonth, IntervalQuarter, IntervalYear 중 하나가 됩니다. Interval
예시
서로 다른 단위를 사용하여 Interval 생성
날짜 연산에 interval을 사용합니다
동적 인터벌 생성
toIntervalDay
도입: v1.1
IntervalDay 데이터 타입의 n일 간격(interval)을 반환합니다.
구문
인수
반환 값
n일 간격(interval)을 반환합니다. Interval
예시
사용 예시
toIntervalHour
도입 버전: v1.1
데이터 타입 IntervalHour의 n시간 길이 구간(interval)을 반환합니다.
구문
인수
반환 값
n시간의 interval을 반환합니다. Interval
예시
사용 예시
toIntervalMicrosecond
도입 버전: v22.6
데이터 타입 IntervalMicrosecond의 n 마이크로초 길이 간격(interval)을 반환합니다.
구문
인수(Arguments)
반환 값
n 마이크로초에 해당하는 interval을 반환합니다. Interval
예시(Examples)
사용 예시(Usage example)
toIntervalMillisecond
도입 버전: v22.6
n 밀리초 길이의 IntervalMillisecond 데이터 타입 interval을 반환합니다.
문법
인자
반환 값
n 밀리초 구간을 나타내는 Interval 값을 반환합니다.
예시
사용 예시
toIntervalMinute
도입 버전: v1.1
데이터 타입 IntervalMinute을(를) 갖는 n분 간격을 반환합니다.
문법
인수
반환 값
n분 길이의 Interval 값을 반환합니다. Interval
예시
사용 예시
toIntervalMonth
도입 버전: v1.1
데이터 타입 IntervalMonth의 n개월 길이 interval을 반환합니다.
구문
인수
반환 값
n개월의 Interval을 반환합니다. Interval
예시
사용 예시
toIntervalNanosecond
도입된 버전: v22.6
IntervalNanosecond 데이터 타입의 n 나노초 간격(interval)을 반환합니다.
구문
인수
반환 값
n 나노초의 interval을 반환합니다. Interval
예시
사용 예시
toIntervalQuarter
도입된 버전: v1.1
IntervalQuarter 데이터 타입의 n개 분기 구간(interval)을 반환합니다.
구문
인수
반환 값
n개의 분기로 구성된 Interval을 반환합니다. Interval
예시
사용 예시
toIntervalSecond
도입 버전: v1.1
데이터 타입 IntervalSecond의 n초 길이 간격을 반환합니다.
구문
인수
반환 값
n초 길이의 interval을 반환합니다. Interval
예시
사용 예시
toIntervalWeek
도입된 버전: v1.1
IntervalWeek 데이터 타입의 n주의 간격을 반환합니다.
구문
인수
반환 값
n주에 해당하는 interval을 반환합니다. Interval
예시
사용 예시
toIntervalYear
도입 버전: v1.1
IntervalYear 데이터 타입의 n년 interval 값을 반환합니다.
구문
인수
반환 값
n년에 해당하는 간격을 반환합니다. Interval
예시
사용 예시
toLowCardinality
도입된 버전: v18.12
입력 인수를 동일한 데이터 타입의 LowCardinality 버전으로 변환합니다.
LowCardinality 데이터 타입에서 일반 데이터 타입으로 변환하려면 CAST FUNCTION을 사용하십시오.
예: CAST(x AS String).
구문
인수
expr— 지원되는 데이터 타입 중 하나의 값을 반환하는 표현식입니다.String또는FixedString또는Date또는DateTime또는(U)Int*또는Float*
반환 값
입력 값을 LowCardinality 데이터 타입으로 변환하여 반환합니다. LowCardinality
예시
사용 예시
toString
도입 버전: v1.1
값을 문자열 형태로 변환합니다. DateTime 인수인 경우, 함수는 시간대 이름을 지정하는 두 번째 String 인수를 받을 수 있습니다.
구문
인자
반환 값
입력값의 문자열 표현을 반환합니다. String
예시
사용 예시
toStringCutToZero
도입 버전: v1.1
String 또는 FixedString 인수를 받아, 첫 번째 널 바이트에서 잘라진 원본 문자열의 복사본인 String을 반환합니다.
널 바이트(\0)는 문자열 종료 문자로 간주됩니다. 이 FUNCTION은 널 바이트가 의미 있는 내용의 끝을 나타내는 C 스타일 문자열이나 이진 데이터를 처리할 때 유용합니다.
문법
인수
s— 처리할 String 또는 FixedString.String또는FixedString
반환 값
첫 번째 null 바이트 이전의 문자로 구성된 String을 반환합니다. String
예시
사용 예시
toTime
도입된 버전: v1.1
입력 값을 Time 데이터 타입으로 변환합니다. String, FixedString, DateTime 또는 자정 이후 경과한 초를 나타내는 숫자형 타입에서의 변환을 지원합니다.
구문
인수
x— 변환할 입력값입니다.String,FixedString,DateTime,(U)Int*,Float*
반환 값
변환된 값을 반환합니다. Time
예제
String을 Time으로 변환
DateTime을 Time으로 변환
정수를 Time으로 변환
toTime64
도입 버전: v25.6
입력 값을 Time64 타입으로 변환합니다. String, FixedString, DateTime64 또는 자정 이후 경과 시간을 마이크로초 단위로 나타내는 숫자형 타입에서의 변환을 지원합니다. 시간 값을 마이크로초 단위 정밀도로 표현합니다.
구문
인수
x— 변환할 입력 값입니다.String또는FixedString또는DateTime64또는(U)Int*또는Float*
반환 값
마이크로초 정밀도로 변환된 입력 값을 반환합니다. Time64(6)
예제
String에서 Time64로의 변환
DateTime64를 Time64로 변환
정수를 Time64로 변환
toTime64OrNull
도입된 버전: v25.6
입력 값을 Time64 타입의 값으로 변환하지만, 오류가 발생하는 경우 NULL을 반환합니다.
toTime64와 동일하지만, 변환 오류 시 예외를 발생시키는 대신 NULL을 반환합니다.
관련 항목:
문법
인수
x— 초 이하 단위까지의 정밀도를 갖는 시간의 문자열 표현입니다.String
반환 값
성공하면 Time64 값을, 그렇지 않으면 NULL을 반환합니다. Time64 또는 NULL
예시
사용 예시
toTime64OrZero
도입 버전: v25.6
입력 값을 Time64 타입 값으로 변환하지만, 오류가 발생하는 경우 00:00:00.000을 반환합니다.
toTime64와 비슷하지만, 변환 오류 시 예외를 발생시키는 대신 00:00:00.000을 반환합니다.
구문
인수
x— 초 단위 이하(소수점 이하) 정밀도를 포함한 시간의 문자열 표현입니다.String
반환 값
성공하면 Time64 값을, 그렇지 않으면 00:00:00.000을 반환합니다. Time64
예시
사용 예시
toTimeOrNull
도입 버전: v1.1
입력 값을 Time 타입 값으로 변환하지만, 오류가 발생하면 NULL을 반환합니다.
toTime와 동일하지만, 변환 오류 시 예외를 던지는 대신 NULL을 반환합니다.
함께 보기:
구문
인수
x— 시간을 나타내는 문자열입니다.String
반환 값
성공하면 Time 값을 반환하고, 그렇지 않으면 NULL을 반환합니다. Time 또는 NULL
예시
사용 예시
toTimeOrZero
도입 버전: v1.1
입력 값을 Time 타입의 값으로 변환하지만, 오류가 발생하면 00:00:00을 반환합니다.
toTime과 동일하지만, 변환 오류 시 예외를 발생시키는 대신 00:00:00을 반환합니다.
구문
인수
x— 시간을 나타내는 문자열 표현.String
반환 값
성공하면 Time 값을 반환하고, 그렇지 않으면 00:00:00을 반환합니다. Time
예시
사용 예시
toUInt128
도입 버전: v1.1
입력 값을 UInt128 타입의 값으로 변환합니다.
오류가 발생하는 경우 예외를 발생시킵니다.
함수는 0 방향으로 반올림을 수행하므로 숫자의 소수 자릿수를 잘라냅니다.
지원되는 인자:
- (U)Int* 타입 값 또는 해당 타입의 문자열 표현.
- Float* 타입 값.
지원되지 않는 인자:
NaN,Inf를 포함한 Float* 값의 문자열 표현.- 예:
SELECT toUInt128('0xc0fe');와 같은 이진 및 16진수 값의 문자열 표현.
입력 값을 UInt128 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다.
함께 보기:
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다.Expression
반환 값
128비트 부호 없는 정수 값을 반환합니다. UInt128
예시
사용 예시
toUInt128OrDefault
도입 버전: v21.11
toUInt128과 마찬가지로, 이 FUNCTION은 입력값을 UInt128 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다.
default 값을 전달하지 않으면, 오류가 발생할 때 0이 반환됩니다.
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.UInt128
반환 값
성공하면 UInt128 타입의 값을 반환하고, 실패하면 기본값이 전달된 경우 해당 값을, 전달되지 않은 경우 0을 반환합니다.
예시
변환 성공 예
변환 실패
toUInt128OrNull
도입된 버전: v21.6
toUInt128과 같이, 이 FUNCTION은 입력값을 UInt128 타입의 값으로 변환하지만, 오류가 발생한 경우 NULL을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현.
지원되지 않는 인수(NULL 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.SELECT toUInt128OrNull('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력값을 UInt128의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
함께 보기:
문법
인수
x— 숫자를 나타내는 String 형식의 값.String
반환 값
변환에 성공하면 UInt128 타입의 값을 반환하고, 실패하면 NULL을 반환합니다. UInt128 또는 NULL
예제
사용 예제
toUInt128OrZero
도입 버전: v1.1
toUInt128와 마찬가지로, 이 함수는 입력 값을 UInt128 타입의 값으로 변환하지만, 오류가 발생하는 경우 0을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현.
지원되지 않는 인수(0 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.- 예:
SELECT toUInt128OrZero('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력 값을 UInt128의 범위 내에서 표현할 수 없으면 결과에 오버플로우 또는 언더플로우가 발생합니다.
이는 오류로 간주되지 않습니다.
함께 보기:
구문
인수
x— 숫자를 나타내는 String 표현입니다.String
반환 값
UInt128 타입의 값을 반환하며, 변환에 실패한 경우 0을 반환합니다. UInt128
예시
사용 예시
toUInt16
도입 버전: v1.1
입력 값을 UInt16 타입의 값으로 변환합니다.
오류가 발생하면 예외를 발생시킵니다.
지원되는 인수:
- (U)Int* 타입의 값 또는 해당 문자열 표현.
- Float* 타입의 값.
지원되지 않는 인수:
NaN및Inf를 포함한 Float* 값의 문자열 표현.SELECT toUInt16('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력 값을 UInt16의 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
예: SELECT toUInt16(65536) == 0;.
이 함수는 숫자의 소수 자릿수를 잘라내는 방식인 0 방향 반올림(rounding towards zero)을 사용합니다.
관련 항목:
구문
인수
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 식입니다.Expression
반환 값
16비트 부호 없는 정수 값을 반환합니다. UInt16
예시
사용 예시
toUInt16OrDefault
도입 버전: v21.11
toUInt16과 유사하게, 이 FUNCTION은 입력값을 UInt16 타입의 값으로 변환하지만 오류가 발생한 경우 기본값을 반환합니다.
default 값을 전달하지 않으면 오류가 발생했을 때 0이 반환됩니다.
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.UInt16
반환 값
성공하면 UInt16 타입의 값을 반환하고, 그렇지 않으면 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. UInt16
예시
성공적인 변환
형변환 실패
toUInt16OrNull
도입 버전: v1.1
toUInt16과(와) 마찬가지로, 이 함수는 입력값을 UInt16 타입 값으로 변환하지만 오류가 발생하는 경우 NULL을 반환합니다.
지원되는 인수:
- (U)Int8/16/32/128/256의 문자열 표현.
지원되지 않는 인수( NULL을 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.- 예:
SELECT toUInt16OrNull('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력값을 UInt16의 범위 내에서 표현할 수 없으면 결과에 오버플로우 또는 언더플로우가 발생합니다.
이는 오류로 간주되지 않습니다.
함께 보기:
구문
인수
x— 숫자를 나타내는 String 값입니다.String
반환 값
변환이 성공하면 UInt16 타입의 값을 반환하고, 그렇지 않으면 NULL을 반환합니다. UInt16 또는 NULL
예시
사용 예시
toUInt16OrZero
도입 버전: v1.1
toUInt16과 마찬가지로 이 함수는 입력값을 UInt16 타입의 값으로 변환하지만, 오류가 발생하는 경우 0을 반환합니다.
지원되는 인수:
- (U)Int8/16/32/128/256의 문자열 표현입니다.
지원되지 않는 인수(0 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현입니다.- 2진수 및 16진수 값의 문자열 표현입니다(예:
SELECT toUInt16OrZero('0xc0fe');).
입력값을 UInt16의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로우 또는 언더플로우가 발생합니다.
이는 오류로 간주되지 않습니다.
함께 보기:
문법
인수
x— 숫자를 나타내는String형식의 값입니다.String
반환 값
변환에 성공하면 UInt16 타입의 값을, 그렇지 않으면 0을 반환합니다. UInt16
예시
사용 예시
toUInt256
도입 버전: v1.1
입력 값을 UInt256 타입의 값으로 변환합니다. 오류가 발생하면 예외를 발생시킵니다. 이 함수는 0에 가까운 방향으로 반올림하므로 숫자의 소수 자릿수를 잘라냅니다.
지원되는 인자:
- (U)Int* 타입의 값 또는 해당 문자열 표현.
- Float* 타입의 값.
지원되지 않는 인자:
NaN및Inf를 포함한 Float* 값의 문자열 표현.SELECT toUInt256('0xc0fe');와 같은 2진수 및 16진수 값의 문자열 표현.
입력 값을 UInt256의 범위 내에서 표현할 수 없는 경우 결과에 오버플로나 언더플로가 발생합니다. 이는 오류로 간주되지 않습니다.
함께 보기:
구문
인수
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다.Expression
반환 값
256비트 부호 없는 정수 값을 반환합니다. UInt256
예제
사용 예제
toUInt256OrDefault
도입 버전: v21.11
toUInt256과 마찬가지로 이 함수는 입력값을 UInt256 자료형의 값으로 변환하지만, 오류가 발생하면 기본값을 반환합니다.
default 값이 전달되지 않으면, 오류가 발생했을 때 0이 반환됩니다.
구문
인자
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.UInt256
반환 값
성공하면 UInt256 타입의 값을 반환하고, 그렇지 않으면 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. UInt256
예시
성공적인 변환
형 변환 실패
toUInt256OrNull
도입 버전: v20.8
toUInt256와 같이, 이 FUNCTION은 입력값을 UInt256 타입으로 변환하지만, 오류가 발생하면 NULL을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현.
지원되지 않는 인수(NULL 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.SELECT toUInt256OrNull('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력값을 UInt256의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로우 또는 언더플로우가 발생합니다.
이는 오류로 간주되지 않습니다.
함께 보기:
문법
인수
x— 숫자를 나타내는 String 형식의 문자열입니다.String
반환 값
변환이 성공하면 UInt256 타입의 값을 반환하고, 실패하면 NULL을 반환합니다. UInt256 또는 NULL
예제
사용 예제
toUInt256OrZero
도입 버전: v20.8
toUInt256과 마찬가지로, 이 함수는 입력값을 UInt256 타입의 값으로 변환하지만, 오류가 발생하는 경우 0을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현.
지원되지 않는 인수(0 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.- 예:
SELECT toUInt256OrZero('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력값을 UInt256의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
관련 항목:
문법
인수(Arguments)
x— 숫자를 나타내는 문자열.String
반환 값(Returned value)
변환이 성공하면 UInt256 타입의 값을, 실패하면 0을 반환합니다. UInt256
예시(Examples)
사용 예시(Usage example)
toUInt32
도입 버전: v1.1
입력값을 UInt32 타입의 값으로 변환합니다.
오류가 발생하면 예외를 발생시킵니다.
지원되는 인수:
- (U)Int* 타입의 값 또는 문자열 표현.
- Float* 타입의 값.
지원되지 않는 인수:
NaN및Inf를 포함한 Float* 값의 문자열 표현.SELECT toUInt32('0xc0fe');와 같은 2진수 및 16진수 값의 문자열 표현.
입력값을 UInt32의 범위 내에서 표현할 수 없는 경우, 결과값은 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
예: SELECT toUInt32(4294967296) == 0;
이 함수는 0으로의 반올림을 사용하며, 이는 숫자의 소수 부분을 잘라낸다는 의미입니다.
함께 보기:
구문
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 표현식입니다.Expression
반환 값
32비트 부호 없는 정수 값인 UInt32를 반환합니다.
예제
사용 예제
toUInt32OrDefault
도입 버전: v21.11
toUInt32와 마찬가지로, 이 FUNCTION은 입력값을 UInt32 타입의 값으로 변환하되, 오류가 발생하면 기본값을 반환합니다.
default 값이 전달되지 않으면 오류가 발생했을 때 0이 반환됩니다.
구문
인수
expr— 숫자 또는 숫자를 문자열로 표현한 값을 반환하는 표현식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.UInt32
반환 값
성공하면 UInt32 타입의 값을 반환하며, 실패한 경우 default 값이 전달되었으면 해당 값을, 그렇지 않으면 0을 반환합니다. UInt32
예시
성공적인 변환
변환 실패
toUInt32OrNull
도입된 버전: v1.1
toUInt32와 같이, 이 FUNCTION은 입력 값을 UInt32 타입의 값으로 변환하지만, 오류가 발생하는 경우 NULL을 반환합니다.
지원되는 인수:
- (U)Int8/16/32/128/256의 문자열 표현
지원되지 않는 인수 (NULL 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현- 예:
SELECT toUInt32OrNull('0xc0fe');와 같은 2진수 및 16진수 값의 문자열 표현
입력 값을 UInt32의 범위 내에서 표현할 수 없으면 결과에서 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
관련 내용:
구문
인수
x— 숫자를 나타내는 String 표현입니다.String
반환 값
변환이 성공하면 UInt32 타입의 값을 반환하고, 실패하면 NULL을 반환합니다. UInt32 또는 NULL
예시
사용 예시
toUInt32OrZero
도입 버전: v1.1
toUInt32와 유사하게, 이 함수는 입력값을 UInt32 형식의 값으로 변환하지만, 오류가 발생한 경우 0을 반환합니다.
지원되는 인수:
- (U)Int8/16/32/128/256의 문자열 표현.
지원되지 않는 인수 (0 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.- 이진수 및 16진수 값의 문자열 표현. 예:
SELECT toUInt32OrZero('0xc0fe');.
입력값을 UInt32 범위 내에서 표현할 수 없으면 결과에서 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
같이 보기:
구문
인수
x— 문자열로 표현된 숫자입니다.String
반환 값
성공적으로 변환되면 UInt32 타입의 값을, 변환에 실패하면 0을 반환합니다. UInt32
예시
사용 예시
toUInt64
도입 버전: v1.1
입력 값을 UInt64 타입의 값으로 변환합니다.
오류가 발생하면 예외를 발생시킵니다.
지원되는 인수:
- (U)Int* 타입의 값 또는 문자열 표현.
- Float* 타입의 값.
지원되지 않는 타입:
NaN및Inf를 포함한 Float* 값의 문자열 표현.SELECT toUInt64('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력 값을 UInt64의 범위 내에서 표현할 수 없으면, 결과에 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
예: SELECT toUInt64(18446744073709551616) == 0;
이 함수는 0으로의 반올림(rounding towards zero)을 사용하므로, 숫자의 소수 자릿수를 버립니다.
함께 보기:
Syntax
인자
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다.Expression
반환 값
64비트 부호 없는 정수 값을 반환합니다. UInt64
예시
사용 예시
toUInt64OrDefault
도입 버전: v21.11
toUInt64와 마찬가지로, 이 FUNCTION은 입력값을 UInt64 타입의 값으로 변환하지만 오류가 발생한 경우 기본값을 반환합니다.
default 값이 지정되지 않으면 오류가 발생했을 때 0이 반환됩니다.
문법
인수
expr— 숫자 또는 숫자의 문자열 표현을 반환하는 식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패한 경우 반환할 기본값입니다.UInt64
반환 값
성공한 경우 UInt64 타입의 값을 반환하고, 실패한 경우에는 전달된 기본값을, 기본값이 전달되지 않았다면 0을 반환합니다. UInt64
예시
변환 성공 예
변환 실패
toUInt64OrNull
도입된 버전: v1.1
toUInt64와 마찬가지로 이 FUNCTION은 입력값을 UInt64 타입의 값으로 변환하지만, 오류가 발생하는 경우 NULL을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현.
지원되지 않는 인수(NULL 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현.SELECT toUInt64OrNull('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력값을 UInt64의 범위 내에서 표현할 수 없는 경우, 결과에서 오버플로우 또는 언더플로우가 발생합니다.
이는 오류로 간주되지 않습니다.
관련 항목:
구문
인자
x— 숫자의 문자열(String) 표현입니다.String
반환 값
변환에 성공하면 UInt64 타입의 값을, 실패하면 NULL을 반환합니다. UInt64 또는 NULL
예시
사용 예시
toUInt64OrZero
도입 버전: v1.1
toUInt64와 마찬가지로, 이 함수는 입력값을 UInt64 타입의 값으로 변환하지만 오류가 발생하는 경우 0을 반환합니다.
지원되는 인수:
- (U)Int*의 문자열 표현입니다.
지원되지 않는 인수(0 반환):
NaN및Inf를 포함한 Float* 값의 문자열 표현입니다.SELECT toUInt64OrZero('0xc0fe');와 같은 이진 및 16진수 값의 문자열 표현입니다.
입력값을 UInt64의 범위 내에서 표현할 수 없는 경우 결과에서 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
관련 항목:
구문
인수(Arguments)
x— 숫자를 문자열로 표현한 값입니다.String
반환 값(Returned value)
변환에 성공하면 UInt64 타입의 값을 반환하고, 실패하면 0을 반환합니다. UInt64
예시(Examples)
사용 예시(Usage example)
toUInt8
도입된 버전: v1.1
입력 값을 UInt8 타입의 값으로 변환합니다.
오류가 발생하면 예외를 던집니다.
지원되는 인수:
- 타입이 (U)Int*인 값 또는 해당 문자열 표현.
- 타입이 Float*인 값.
지원되지 않는 인수:
NaN,Inf를 포함한 Float* 값의 문자열 표현.SELECT toUInt8('0xc0fe');와 같은 이진수 및 16진수 값의 문자열 표현.
입력 값을 UInt8의 범위 내에서 표현할 수 없으면 결과에 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
예: SELECT toUInt8(256) == 0;.
이 함수는 0 방향으로 반올림을 사용합니다. 즉, 수의 소수 부분을 잘라냅니다.
함께 보기:
Syntax
인자
expr— 숫자 또는 숫자를 문자열로 표현한 값을 반환하는 표현식입니다.Expression
반환 값
8비트 부호 없는 정수 값UInt8을 반환합니다.
예시
사용 예시
toUInt8OrDefault
도입 버전: v21.11
toUInt8와 마찬가지로, 이 함수는 입력값을 UInt8 타입의 값으로 변환하지만, 오류가 발생한 경우 기본값을 반환합니다.
default 값이 전달되지 않으면, 오류가 발생한 경우 0이 반환됩니다.
구문
인수
expr— 숫자 또는 숫자를 나타내는 문자열을 반환하는 표현식입니다.String또는(U)Int*또는Float*default— 선택 사항입니다. 파싱에 실패했을 때 반환할 기본값입니다.UInt8
반환 값
성공한 경우 UInt8 타입의 값을 반환하고, 실패한 경우 전달된 기본값이 있으면 해당 값을, 없으면 0을 반환합니다. UInt8
예시
성공적인 변환
변환 실패
toUInt8OrNull
도입된 버전: v1.1
toUInt8와 마찬가지로 이 함수는 입력 값을 UInt8 타입의 값으로 변환하지만, 오류가 발생하면 NULL을 반환합니다.
지원되는 인수:
- (U)Int8/16/32/128/256의 문자열 표현.
지원되지 않는 인수(NULL 반환):
NaN및Inf를 포함한 일반 Float* 값의 문자열 표현.- 이진수 및 16진수 값의 문자열 표현, 예:
SELECT toUInt8OrNull('0xc0fe');.
입력 값을 UInt8의 범위 내에서 표현할 수 없는 경우, 결과에 오버플로우 또는 언더플로우가 발생합니다.
이는 오류로 간주되지 않습니다.
함께 보기:
구문
인수
x— 숫자를 String 형식으로 표현한 값입니다.String
반환 값
변환에 성공하면 UInt8 타입의 값을, 실패하면 NULL을 반환합니다. UInt8 또는 NULL
예시
사용 예시
toUInt8OrZero
도입 버전: v1.1
toUInt8와 마찬가지로 이 함수는 입력 값을 UInt8 타입의 값으로 변환하지만, 오류가 발생하는 경우 0을 반환합니다.
지원되는 인수:
- (U)Int8/16/32/128/256의 문자열 표현.
지원되지 않는 인수(0 반환):
NaN및Inf를 포함한 일반적인 Float* 타입 값의 문자열 표현.- 이진수 및 16진수 값의 문자열 표현, 예를 들어
SELECT toUInt8OrZero('0xc0fe');.
입력 값을 UInt8의 범위 내에서 표현할 수 없는 경우 결과에 오버플로 또는 언더플로가 발생합니다.
이는 오류로 간주되지 않습니다.
함께 보기:
구문
인수
x— 숫자를 나타내는 문자열(String)입니다.String
반환 값
UInt8 타입의 값을 반환하며, 변환에 실패하면 0을 반환합니다. UInt8
예시
사용 예시
toUUID
도입 버전: v1.1
String 형식의 값을 UUID 값으로 변환합니다.
문법
인수
string— 문자열로 표현된 UUID.String또는FixedString
반환 값
UUID 문자열 표현으로부터 UUID를 반환합니다. UUID
예시
사용 예시
toUUIDOrZero
도입 버전: v20.12
입력 값을 UUID 타입의 값으로 변환하지만, 오류가 발생할 경우 zero UUID를 반환합니다.
toUUID와 유사하지만, 변환 오류 시 예외를 발생시키는 대신 zero UUID (00000000-0000-0000-0000-000000000000)를 반환합니다.
지원되는 인수:
- 표준 형식의 UUID 문자열 표현(8-4-4-4-12개의 16진수 숫자).
- 하이픈이 없는 UUID 문자열 표현(32개의 16진수 숫자).
지원되지 않는 인수(zero UUID 반환):
- 잘못된 문자열 형식.
- 문자열이 아닌 타입.
구문
인수
x— UUID를 문자열로 표현한 값.String
반환 값
성공 시 UUID 값을, 그렇지 않으면 모두 0으로 구성된 UUID (00000000-0000-0000-0000-000000000000)를 반환합니다. UUID
예시
사용 예시
toUnixTimestamp64Micro
도입 버전: v20.5
DateTime64를 마이크로초 단위의 고정 정밀도를 가진 Int64 값으로 변환합니다.
입력 값의 정밀도에 따라 값이 적절히 확대되거나 축소됩니다.
출력 값은 입력 값의 시간대가 아니라 UTC 기준입니다.
구문
인수
value— 임의의 정밀도를 가진 DateTime64 값.DateTime64
반환 값
마이크로초 단위의 Unix 타임스탬프를 반환합니다. Int64
예시
사용 예시
toUnixTimestamp64Milli
도입 버전: v20.5
DateTime64를 밀리초 고정 정밀도의 Int64 값으로 변환합니다.
입력 값은 정밀도에 따라 적절히 확대 또는 축소되어 변환됩니다.
출력 값은 입력 값의 시간대가 아니라 UTC를 기준으로 합니다.
구문
인수
value— 임의의 정밀도를 가진 DateTime64 값입니다.DateTime64
반환 값
밀리초 단위의 Unix 타임스탬프를 반환합니다. Int64
예제
사용 예제
toUnixTimestamp64Nano
도입 버전: v20.5
DateTime64를 나노초 단위의 고정된 정밀도를 갖는 Int64 값으로 변환합니다.
입력값은 자신의 정밀도에 따라 적절히 확대 또는 축소되어 변환됩니다.
출력 값은 입력 값의 타임존이 아니라 UTC를 기준으로 합니다.
구문
인수
value— 임의의 정밀도를 가진 DateTime64 값입니다.DateTime64
반환 값
Unix 타임스탬프를 나노초 단위로 반환합니다. Int64
예시
사용 예시
toUnixTimestamp64Second
도입 버전: v24.12
DateTime64를 초 단위의 고정 정밀도를 갖는 Int64 값으로 변환합니다.
입력 값은 정밀도에 따라 적절히 확대 또는 축소되어 변환됩니다.
출력 값은 입력 값의 타임존이 아니라 UTC를 기준으로 합니다.
구문
인수
value— 임의의 정밀도를 가진 DateTime64 값.DateTime64
반환 값
초 단위 Unix 타임스탬프를 반환합니다. Int64
예시
사용 예시