Функции преобразования типов
Общие проблемы при преобразовании данных
ClickHouse в целом использует то же поведение, что и программы на C++.
Функции to<type> и cast в некоторых случаях ведут себя по‑разному, например, для LowCardinality: cast удаляет признак LowCardinality, а функции to<type> — нет. То же самое относится к Nullable; это поведение несовместимо со стандартом SQL, и его можно изменить с помощью настройки cast_keep_nullable.
Имейте в виду возможную потерю данных, если значения одного типа данных преобразуются в меньший тип данных (например, из Int64 в Int32) или между несовместимыми типами данных (например, из String в Int). Тщательно проверяйте, что результат соответствует ожиданиям.
Пример:
Примечания к функциям toString
Семейство функций toString позволяет выполнять преобразования между числами, строками (но не фиксированными строками), датами и датами со временем.
Все эти функции принимают один аргумент.
- При преобразовании в строку или из строки значение форматируется или разбирается по тем же правилам, что и для формата
TabSeparated(и почти всех других текстовых форматов). Если строку не удаётся разобрать, генерируется исключение и запрос отменяется. - При преобразовании дат в числа или наоборот дате соответствует количество дней, прошедших с начала эпохи Unix.
- При преобразовании дат со временем в числа или наоборот дате со временем соответствует количество секунд, прошедших с начала эпохи Unix.
- Функция
toStringс аргументом типаDateTimeможет принимать второй аргумент типаString, содержащий имя часового пояса, например:Europe/Amsterdam. В этом случае время форматируется в соответствии с указанным часовым поясом.
Примечания о функциях toDate/toDateTime
Форматы даты и даты со временем для функций toDate/toDateTime определены следующим образом:
В качестве исключения при преобразовании из числовых типов UInt32, Int32, UInt64 или Int64 в Date, если число больше либо равно 65536, оно интерпретируется как Unix‑таймстемп (а не как количество дней) и округляется до даты.
Это позволяет поддерживать распространённый случай записи toDate(unix_timestamp), который в противном случае привёл бы к ошибке и потребовал бы более громоздкой конструкции toDate(toDateTime(unix_timestamp)).
Преобразование между датой и датой со временем выполняется естественным образом: путём добавления нулевого времени или отбрасывания времени.
Преобразование между числовыми типами использует те же правила, что и присваивание между различными числовыми типами в C++.
Пример
Запрос:
Результат:
См. также функцию toUnixTimestamp.
toBool
Преобразует входное значение в значение типа Bool. В случае ошибки вызывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строку. Выражение.
Поддерживаемые аргументы:
- Значения типа (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
- Строки
trueилиfalse(без учета регистра).
Возвращаемое значение
- Возвращает
trueилиfalseв зависимости от результата вычисления аргумента. Bool.
Пример
Запрос:
Результат:
toInt8
Преобразует входное значение в значение типа Int8. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений типа Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt8('0xc0fe');.
Если входное значение не может быть представлено в диапазоне Int8, происходит переполнение или выход за нижнюю границу (underflow) результата.
Это не считается ошибкой.
Например: SELECT toInt8(128) == -128;.
Возвращаемое значение
- 8-битное целое число. Int8.
Функция использует округление к нулю, то есть обрезает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toInt8OrZero
Как и функция toInt8, эта функция преобразует входное значение в значение типа Int8, но в случае ошибки возвращает 0.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления чисел типов (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращается 0):
- Строковые представления вещественных значений типов Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных чисел, например
SELECT toInt8OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах Int8, происходит переполнение или выход результата за допустимые границы. Это не считается ошибкой.
Возвращаемое значение
- 8-битное целое число типа Int8 при успешном преобразовании, иначе
0.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toInt8OrNull
Подобно функции toInt8, эта функция преобразует входное значение к типу Int8, но в случае ошибки возвращает NULL.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления чисел типов (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают \N)
- Строковые представления значений типов Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например:
SELECT toInt8OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах Int8, происходит переполнение или выход результата за допустимые границы. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toInt8OrDefault
Как и toInt8, эта функция преобразует входное значение в значение типа Int8, но в случае ошибки возвращает значение по умолчанию.
Если значение default не передано, при ошибке возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный) — значение по умолчанию, которое возвращается, если преобразование к типуInt8оказалось неуспешным. Int8.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt8OrDefault('0xc0fe', CAST('-1', 'Int8'));.
Если входное значение не может быть представлено в пределах диапазона Int8, происходит переполнение или выход результата за нижнюю границу диапазона. Это не считается ошибкой.
Возвращаемое значение
- 8-битное целое число при успешном преобразовании, иначе возвращается значение по умолчанию, если оно передано, или
0, если нет. Int8.
- Функция использует округление к нулю, то есть отбрасывает дробные разряды чисел.
- Тип значения по умолчанию должен совпадать с типом приведения.
Пример
Запрос:
Результат:
См. также
toInt16
Преобразует входное значение в значение типа Int16. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt16('0xc0fe');.
Если входное значение не может быть представлено в диапазоне Int16, происходит переполнение или выход результата за пределы диапазона.
Это не считается ошибкой.
Например: SELECT toInt16(32768) == -32768;.
Возвращаемое значение
- 16-битное целочисленное значение. Int16.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toInt16OrZero
Аналогично функции toInt16, эта функция преобразует входное значение в значение типа Int16, но в случае ошибки возвращает 0.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращается 0):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt16OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int16, происходит переполнение или выход результата за пределы диапазона. Это не считается ошибкой.
Возвращаемое значение
- 16-битное целое значение при успешном выполнении, в противном случае
0. Int16.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toInt16OrNull
Как и toInt16, эта функция преобразует входное значение в значение типа Int16, но при ошибке возвращает NULL.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают \N)
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt16OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int16, происходит переполнение или, наоборот, выход результата за нижнюю границу диапазона (underflow). Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
Смотрите также
toInt16OrDefault
Подобно функции toInt16, эта функция преобразует входное значение в значение типа Int16, но в случае ошибки возвращает значение по умолчанию.
Если аргумент default не указан, то в случае ошибки возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный параметр) — значение по умолчанию, которое возвращается, если преобразование к типуInt16завершилось неудачно. Int16.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например:
SELECT toInt16OrDefault('0xc0fe', CAST('-1', 'Int16'));.
Если входное значение не может быть представлено в диапазоне Int16, происходит переполнение или выход результата за нижнюю границу. Это не считается ошибкой.
Возвращаемое значение
- 16-битное целое число при успешном преобразовании, в противном случае возвращается значение по умолчанию, если оно передано, или
0, если нет. Int16.
- Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
- Тип значения по умолчанию должен совпадать с типом, к которому выполняется приведение.
Пример
Запрос:
Результат:
См. также
toInt32
Преобразует входное значение в значение типа Int32. В случае ошибки вызывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt32('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int32, происходит переполнение (over/underflow).
Это не считается ошибкой.
Например, SELECT toInt32(2147483648) == -2147483648;
Возвращаемое значение
- 32-битное целое число. Int32.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toInt32OrZero
Подобно функции toInt32, эта функция преобразует входное значение к типу Int32, но возвращает 0 в случае ошибки.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращается 0):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt32OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int32, происходит переполнение результата (overflow) или выход за нижнюю границу диапазона (underflow). Это не считается ошибкой.
Возвращаемое значение
- 32-битное целочисленное значение в случае успешного преобразования, иначе
0. Int32
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toInt32OrNull
Аналогично функции toInt32, эта функция преобразует входное значение в значение типа Int32, но в случае ошибки возвращает NULL.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают \N):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt32OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int32, происходит переполнение или выход результата за пределы диапазона. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, то есть усекает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toInt32OrDefault
Подобно функции toInt32, эта функция преобразует входное значение в значение типа Int32, но в случае ошибки возвращает значение по умолчанию.
Если аргумент default не передан, в случае ошибки возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный) — значение по умолчанию, возвращаемое в случае неуспешного преобразования к типуInt32. Int32.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типов Float32/64.
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например:
SELECT toInt32OrDefault('0xc0fe', CAST('-1', 'Int32'));.
Если входное значение не может быть представлено в пределах Int32, происходит переполнение или выход результата за нижнюю границу диапазона. Это не считается ошибкой.
Возвращаемое значение
- 32-битное целое значение при успешном выполнении, в противном случае возвращается значение по умолчанию, если оно передано, или
0, если не передано. Int32.
- Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
- Тип значения по умолчанию должен совпадать с целевым типом приведения.
Пример
Запрос:
Результат:
См. также
toInt64
Преобразует входное значение в значение типа Int64. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Неподдерживаемые типы:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt64('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int64, происходит переполнение (overflow/underflow).
Это не считается ошибкой.
Например: SELECT toInt64(9223372036854775808) == -9223372036854775808;
Возвращаемое значение
- 64-битное целое число. Int64.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toInt64OrZero
Как и toInt64, эта функция преобразует входное значение в значение типа Int64, но в случае ошибки возвращает 0.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления типов (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают 0):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt64OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int64, результат переполняется или выходит за нижнюю границу (underflow). Это не считается ошибкой.
Возвращаемое значение
- 64-битное целое число в случае успешного преобразования, иначе
0. Int64.
Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
Пример
Запрос:
Результат:
См. также
toInt64OrNull
Аналогично функции toInt64, эта функция преобразует входное значение в значение типа Int64, но в случае ошибки возвращает NULL.
Синтаксис
Аргументы
x— строковое представление числа. Expression / String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают \N):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt64OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int64, происходит переполнение или выход результата за нижнюю границу диапазона (underflow). Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, то есть отбрасывает дробные разряды чисел.
Пример
Запрос:
Результат:
См. также
toInt64OrDefault
Как и toInt64, эта функция преобразует входное значение в значение типа Int64, но в случае ошибки возвращает значение по умолчанию.
Если аргумент default не указан, то в случае ошибки возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный) — значение по умолчанию, которое возвращается, если преобразование к типуInt64не удалось. Int64.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типов Float32/64.
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления значений типов Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например:
SELECT toInt64OrDefault('0xc0fe', CAST('-1', 'Int64'));.
Если входное значение не может быть представлено в пределах диапазона Int64, происходит переполнение или выход результата за пределы диапазона. Это не считается ошибкой.
Возвращаемое значение
- 64-битное целое число при успешном выполнении; в противном случае возвращается значение по умолчанию, если оно передано, или
0, если не передано. Int64.
- Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
- Тип значения по умолчанию должен совпадать с типом приведения.
Пример
Запрос:
Результат:
См. также
toInt128
Преобразует входное значение в значение типа Int128. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений типов Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt128('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int128, происходит переполнение (выход за верхнюю или нижнюю границу диапазона). Это не считается ошибкой.
Возвращаемое значение
- 128-битное целое число. Int128.
Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
Пример
Запрос:
Результат:
См. также
toInt128OrZero
Подобно функции toInt128, преобразует входное значение в значение типа Int128, но в случае ошибки возвращает 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают 0):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt128OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int128, происходит переполнение или выход за нижнюю границу (underflow) результата. Это не считается ошибкой.
Возвращаемое значение
- 128-битное целое число при успешном преобразовании, иначе
0. Int128.
Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
Пример
Запрос:
Результат:
Смотрите также
toInt128OrNull
Как и toInt128, эта функция преобразует входное значение в значение типа Int128, но возвращает NULL в случае ошибки.
Синтаксис
Аргументы
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращается \N):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt128OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int128, происходит переполнение или выход результата за нижнюю границу диапазона. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
Пример
Запрос:
Результат:
См. также
toInt128OrDefault
Как и toInt128, эта функция преобразует входное значение в значение типа Int128, но в случае ошибки возвращает значение по умолчанию.
Если аргумент default не указан, в случае ошибки возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный параметр) — значение по умолчанию, возвращаемое в случае неуспешного преобразования к типуInt128. Int128.
Поддерживаемые аргументы:
- (U)Int8/16/32/64/128/256.
- Float32/64.
- Строковые представления (U)Int8/16/32/128/256.
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt128OrDefault('0xc0fe', CAST('-1', 'Int128'));.
Если входное значение не может быть представлено в пределах диапазона Int128, происходит переполнение или выход результата за нижнюю границу диапазона. Это не считается ошибкой.
Возвращаемое значение
- 128-битное целое число при успешном преобразовании; в противном случае возвращается значение по умолчанию, если оно передано, или
0, если нет. Int128.
- Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
- Тип значения по умолчанию должен совпадать с целевым типом приведения.
Пример
Запрос:
Результат:
Смотрите также
toInt256
Преобразует входное значение в значение типа Int256. В случае ошибки генерирует исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt256('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int256, результат выходит за границы этого диапазона. Это не считается ошибкой.
Возвращаемое значение
- 256-битное целое число. Int256.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toInt256OrZero
Как и toInt256, эта функция преобразует входное значение в значение типа Int256, но в случае ошибки возвращает 0.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают 0):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt256OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int256, происходит переполнение или выход результата за пределы диапазона. Это не считается ошибкой.
Возвращаемое значение
- 256-битное целое значение при успешном преобразовании, иначе
0. Int256.
Функция использует округление к нулю, то есть отбрасывает дробные разряды чисел.
Пример
Запрос:
Результат:
См. также
toInt256OrNull
Подобно функции toInt256, эта функция преобразует входное значение в значение типа Int256, но возвращает NULL в случае ошибки.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают \N)
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt256OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int256, происходит переполнение (overflow/underflow) результата. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, то есть отсекает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toInt256OrDefault
Как и toInt256, эта функция преобразует входное значение в значение типа Int256, но в случае ошибки возвращает значение по умолчанию.
Если аргумент default не передан, то в случае ошибки возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный) — значение по умолчанию, возвращаемое, если преобразование к типуInt256не удалось. Int256.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toInt256OrDefault('0xc0fe', CAST('-1', 'Int256'));
Если входное значение не может быть представлено в пределах диапазона Int256, происходит переполнение или антипереполнение результата. Это не считается ошибкой.
Возвращаемое значение
- 256-битное целое число при успешном преобразовании, иначе возвращается значение по умолчанию, если оно передано, или
0, если нет. Int256.
- Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
- Тип значения по умолчанию должен совпадать с типом приведения.
Пример
Запрос:
Результат:
См. также
toUInt8
Преобразует входное значение в значение типа UInt8. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений типов Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt8('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt8, происходит переполнение или выход результата за границы диапазона.
Это не считается ошибкой.
Например: SELECT toUInt8(256) == 0;.
Возвращаемое значение
- 8-битное беззнаковое целое число. UInt8.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toUInt8OrZero
Как и toUInt8, эта функция преобразует входное значение в значение типа UInt8, но при ошибке возвращает 0.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают 0):
- Строковые представления обычных значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt8OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt8, происходит переполнение или выход за нижнюю границу диапазона (underflow) результата. Это не считается ошибкой.
Возвращаемое значение
- 8-битное беззнаковое целое число при успешном преобразовании, иначе
0. UInt8.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toUInt8OrNull
Подобно функции toUInt8, эта функция преобразует входное значение в тип UInt8, но в случае ошибки возвращает NULL.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают \N):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt8OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt8, происходит переполнение или выход результата за нижнюю границу диапазона (underflow). Это не считается ошибкой.
Возвращаемое значение
- 8-битное беззнаковое целое число при успешном преобразовании, в противном случае
NULL. UInt8 / NULL.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
Смотрите также
toUInt8OrDefault
Как и функция toUInt8, эта функция преобразует входное значение в значение типа UInt8, но в случае ошибки возвращает значение по умолчанию.
Если значение default не указано, в случае ошибки возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный параметр) — значение по умолчанию, которое возвращается, если преобразование к типуUInt8не удалось. UInt8.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt8OrDefault('0xc0fe', CAST('0', 'UInt8'));.
Если входное значение не может быть представлено в пределах допустимого диапазона UInt8, происходит переполнение или выход результата за нижнюю границу диапазона (underflow). Это не считается ошибкой.
Возвращаемое значение
- 8-битное целое без знака при успешном преобразовании; в противном случае возвращается значение по умолчанию, если оно задано, или
0, если нет. UInt8.
- Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
- Тип значения по умолчанию должен совпадать с типом, к которому выполняется приведение.
Пример
Запрос:
Результат:
См. также
toUInt16
Преобразует входное значение в значение типа UInt16. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражения.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt16('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона типа UInt16, происходит переполнение или потеря значимости результата.
Это не считается ошибкой.
Например: SELECT toUInt16(65536) == 0;.
Возвращаемое значение
- 16-битное беззнаковое целое число. UInt16.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toUInt16OrZero
Аналогично функции toUInt16, эта функция преобразует входное значение в значение типа UInt16, но в случае ошибки возвращает 0.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления типов (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращается 0):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt16OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt16, происходит переполнение или выход за нижнюю границу результата. Это не считается ошибкой.
Возвращаемое значение
- 16-битное беззнаковое целое число при успешном выполнении, иначе
0. UInt16.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toUInt16OrNull
Аналогично функции toUInt16, эта функция преобразует входное значение в значение типа UInt16, но в случае ошибки возвращает NULL.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращается \N)
- Строковые представления значений типов Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt16OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt16, происходит переполнение или выход результата за границы диапазона. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toUInt16OrDefault
Подобно toUInt16, эта функция преобразует входное значение в значение типа UInt16, но в случае ошибки возвращает значение по умолчанию.
Если аргумент default не передан, то в случае ошибки возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный параметр) — значение по умолчанию, которое возвращается, если преобразование к типуUInt16не удалось. UInt16.
Поддерживаемые аргументы:
- Значения или строковые представления типа (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt16OrDefault('0xc0fe', CAST('0', 'UInt16'));.
Если входное значение не может быть представлено в пределах диапазона UInt16, происходит переполнение или выход результата за пределы диапазона. Это не считается ошибкой.
Возвращаемое значение
- 16-битное беззнаковое целое число при успешном преобразовании, в противном случае возвращается значение по умолчанию, если оно передано, или
0, если не передано. UInt16.
- Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
- Тип значения по умолчанию должен совпадать с целевым типом приведения.
Пример
Запрос:
Результат:
См. также
toUInt32
Преобразует входное значение в значение типа UInt32. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.
Поддерживаемые аргументы:
- Значения или строковые представления типа (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt32('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt32, происходит переполнение результата (вверх или вниз).
Это не считается ошибкой.
Например: SELECT toUInt32(4294967296) == 0;
Возвращаемое значение
- 32-битное беззнаковое целое число. UInt32.
Функция использует округление в сторону нуля, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toUInt32OrZero
Аналогично функции toUInt32, преобразует входное значение в тип UInt32, но в случае ошибки возвращает 0.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления значений типов (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают 0):
- Строковые представления значений типов Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt32OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах UInt32, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
Возвращаемое значение
- 32-битное беззнаковое целое число при успешном выполнении, в противном случае
0. UInt32
Функция использует округление к нулю , то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toUInt32OrNull
Как и toUInt32, эта функция преобразует входное значение в значение типа UInt32, но в случае ошибки возвращает NULL.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают \N):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt32OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt32, происходит переполнение или выход результата за допустимые границы (underflow). Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю , то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toUInt32OrDefault
Как и функция toUInt32, эта функция преобразует входное значение в значение типа UInt32, но в случае ошибки возвращает значение по умолчанию.
Если аргумент default не указан, в случае ошибки возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный) — значение по умолчанию, возвращаемое при неудачном разборе в типUInt32. UInt32.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt32OrDefault('0xc0fe', CAST('0', 'UInt32'));.
Если входное значение не может быть представлено в пределах UInt32, происходит переполнение или выход результата за границы допустимого диапазона. Это не считается ошибкой.
Возвращаемое значение
- 32-битное беззнаковое целое значение при успешном преобразовании, в противном случае возвращается значение по умолчанию, если оно передано, или
0, если нет. UInt32.
- Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
- Тип значения по умолчанию должен совпадать с типом приведения.
Пример
Запрос:
Результат:
Смотрите также
toUInt64
Преобразует входное значение в значение типа UInt64. В случае ошибки вызывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Неподдерживаемые типы:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt64('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt64, происходит переполнение по верхней или нижней границе.
Это не считается ошибкой.
Например: SELECT toUInt64(18446744073709551616) == 0;
Возвращаемое значение
- 64-битное целое без знака. UInt64.
Функция использует округление к нулю, то есть усекает дробную часть чисел.
Пример
Запрос:
Результат:
См. также
toUInt64OrZero
Как и toUInt64, эта функция преобразует входное значение в значение типа UInt64, но в случае ошибки возвращает 0.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления чисел типов (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращается 0):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt64OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах UInt64, происходит переполнение или потеря значимости (underflow) результата. Это не считается ошибкой.
Возвращаемое значение
- 64-битное беззнаковое целое число при успешном преобразовании, иначе
0. UInt64.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toUInt64OrNull
Как и функция toUInt64, эта функция преобразует входное значение в значение типа UInt64, но в случае ошибки возвращает NULL.
Синтаксис
Аргументы
x— строковое представление числа. Expression / String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают \N):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt64OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt64, происходит переполнение или андерфлоу результата. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toUInt64OrDefault
Как и toUInt64, эта функция преобразует входное значение к типу UInt64, но в случае ошибки возвращает значение по умолчанию.
Если аргумент default не передан, в случае ошибки возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.defauult(необязательный) — значение по умолчанию, которое возвращается, если преобразование к типуUInt64завершилось неуспешно. UInt64.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например:
SELECT toUInt64OrDefault('0xc0fe', CAST('0', 'UInt64'));.
Если входное значение не может быть представлено в пределах диапазона UInt64, происходит переполнение или выход за нижнюю границу результата. Это не считается ошибкой.
Возвращаемое значение
- 64-битное целое число без знака в случае успешного преобразования, иначе возвращается значение по умолчанию, если оно задано, или
0, если нет. UInt64.
- Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
- Тип значения по умолчанию должен совпадать с типом приведения.
Пример
Запрос:
Результат:
См. также
toUInt128
Преобразует входное значение в значение типа UInt128. В случае ошибки вызывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типа Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt128('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt128, результат выходит за верхнюю или нижнюю границу диапазона. Это не считается ошибкой.
Возвращаемое значение
- 128-битное беззнаковое целое число. UInt128.
Функция использует округление к нулю, то есть усечает дробную часть числа.
Пример
Запрос:
Результат:
См. также
toUInt128OrZero
Подобно функции toUInt128, эта функция преобразует входное значение к типу UInt128, но в случае ошибки возвращает 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают 0):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt128OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt128, возникает переполнение или выход за нижнюю границу результата. Это не считается ошибкой.
Возвращаемое значение
- 128-битное беззнаковое целое число при успешном преобразовании, иначе
0. UInt128.
Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
Пример
Запрос:
Результат:
См. также
toUInt128OrNull
Аналогично функции toUInt128, эта функция преобразует входное значение в значение типа UInt128, но при возникновении ошибки возвращает NULL.
Синтаксис
Аргументы
x— строковое представление числа. Expression / String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают \N):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt128OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt128, происходит переполнение или потеря значимости результата. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление в сторону нуля, то есть отбрасывает дробные цифры чисел.
Пример
Запрос:
Результат:
См. также
toUInt128OrDefault
Аналогично функции toUInt128, эта функция преобразует входное значение в значение типа UInt128, но при ошибке возвращает значение по умолчанию.
Если аргумент default не передан, то при ошибке возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный) — значение по умолчанию, возвращаемое при неуспешной попытке преобразования к типуUInt128. UInt128.
Поддерживаемые аргументы:
- (U)Int8/16/32/64/128/256.
- Float32/64.
- Строковые представления (U)Int8/16/32/128/256.
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt128OrDefault('0xc0fe', CAST('0', 'UInt128'));.
Если входное значение не может быть представлено в пределах диапазона UInt128, происходит переполнение или потеря точности результата. Это не считается ошибкой.
Возвращаемое значение
- 128-битное беззнаковое целое значение при успешном преобразовании, иначе — значение по умолчанию, если оно передано, или
0, если не передано. UInt128.
- Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
- Тип значения по умолчанию должен совпадать с типом приведения.
Пример
Запрос:
Результат:
См. также
toUInt256
Преобразует входное значение в значение типа UInt256. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений типов Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt256('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt256, результат выходит за верхнюю или нижнюю границу диапазона (переполнение/отрицательное переполнение). Это не считается ошибкой.
Возвращаемое значение
- 256-битное беззнаковое целое значение. Int256.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
Пример
Запрос:
Результат:
Смотрите также
toUInt256OrZero
Как и функция toUInt256, эта функция преобразует входное значение в значение типа UInt256, но в случае ошибки возвращает 0.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления чисел типов (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращается 0):
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления чисел в двоичной и шестнадцатеричной форме, например
SELECT toUInt256OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt256, происходит переполнение или выход за нижнюю границу результата. Это не считается ошибкой.
Возвращаемое значение
- 256-битное беззнаковое целое число в случае успешного преобразования, иначе
0. UInt256.
Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
Пример
Запрос:
Результат:
См. также
toUInt256OrNull
Как и функция toUInt256, эта функция преобразует входное значение в значение типа UInt256, но при ошибке возвращает NULL.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления чисел типов (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращает \N)
- Строковые представления значений Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt256OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt256, происходит переполнение или выход результата за нижнюю границу диапазона. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, то есть отбрасывает дробную часть чисел.
Пример
Запрос:
Результат:
См. также
toUInt256OrDefault
Как и toUInt256, эта функция преобразует входное значение в значение типа UInt256, но в случае ошибки возвращает значение по умолчанию.
Если значение default не передано, то в случае ошибки возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный) — значение по умолчанию, которое возвращается, если преобразование к типуUInt256не удалось. UInt256.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типов Float32/64.
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления значений типов Float32/64, включая
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toUInt256OrDefault('0xc0fe', CAST('0', 'UInt256'));
Если входное значение не может быть представлено в пределах диапазона UInt256, происходит переполнение или потеря точности результата. Это не считается ошибкой.
Возвращаемое значение
- 256-битное целое без знака при успешном преобразовании; в противном случае возвращается значение по умолчанию, если оно передано, или
0, если нет. UInt256.
- Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
- Тип значения по умолчанию должен совпадать с типом, к которому выполняется приведение.
Пример
Запрос:
Результат:
См. также
toFloat32
Преобразует входное значение в значение типа Float32. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.
Поддерживаемые аргументы:
- Значения типов (U)Int8/16/32/64/128/256.
- Строковые представления (U)Int8/16/32/128/256.
- Значения типов Float32/64, включая
NaNиInf. - Строковые представления Float32/64, включая
NaNиInf(без учета регистра).
Неподдерживаемые аргументы:
- Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toFloat32('0xc0fe');.
Возвращаемое значение
- 32-битное число с плавающей запятой. Float32.
Пример
Запрос:
Результат:
См. также
toFloat32OrZero
Как и функция toFloat32, эта функция преобразует входное значение к значению типа Float32, но в случае ошибки возвращает 0.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления типов (U)Int8/16/32/128/256, Float32/64.
Неподдерживаемые аргументы (возвращают 0):
- Строковые представления двоичных и шестнадцатеричных значений, например:
SELECT toFloat32OrZero('0xc0fe');.
Возвращаемое значение
- Значение 32-битного числа с плавающей точкой при успешном преобразовании, иначе
0. Float32.
Пример
Запрос:
Результат:
Смотрите также
toFloat32OrNull
Как и toFloat32, эта функция преобразует входное значение в тип Float32, но возвращает NULL в случае ошибки.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления чисел типов (U)Int8/16/32/128/256, Float32/64.
Неподдерживаемые аргументы (возвращают \N):
- Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toFloat32OrNull('0xc0fe');.
Возвращаемое значение
- 32-битное значение типа Float32 при успешном преобразовании, иначе
\N. Float32.
Пример
Запрос:
Результат:
См. также
toFloat32OrDefault
Как и toFloat32, эта функция преобразует входное значение в значение типа Float32, но в случае ошибки возвращает значение по умолчанию.
Если значение default не указано, то в случае ошибки возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный) — значение по умолчанию, которое возвращается, если преобразование к типуFloat32завершается неудачей. Float32.
Поддерживаемые аргументы:
- Значения типов (U)Int8/16/32/64/128/256.
- Строковые представления (U)Int8/16/32/128/256.
- Значения типов Float32/64, включая
NaNиInf. - Строковые представления Float32/64, включая
NaNиInf(без учета регистра).
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toFloat32OrDefault('0xc0fe', CAST('0', 'Float32'));.
Возвращаемое значение
- 32-битное число с плавающей запятой при успешном разборе, в противном случае возвращается значение по умолчанию, если оно передано, или
0, если нет. Float32.
Пример
Запрос:
Результат:
См. также
toFloat64
Преобразует входное значение в значение типа Float64. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.
Поддерживаемые аргументы:
- Значения целочисленных типов (U)Int8/16/32/64/128/256.
- Строковые представления (U)Int8/16/32/128/256.
- Значения типов с плавающей запятой Float32/64, включая
NaNиInf. - Строковые представления типов Float32/64, включая
NaNиInf(регистронезависимо).
Неподдерживаемые аргументы:
- Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toFloat64('0xc0fe');.
Возвращаемое значение
- 64-битное число с плавающей запятой. Float64.
Пример
Запрос:
Результат:
См. также
toFloat64OrZero
Аналогично функции toFloat64, эта функция преобразует входное значение в значение типа Float64, но в случае ошибки возвращает 0.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления чисел типов (U)Int8/16/32/128/256, Float32/64.
Неподдерживаемые аргументы (возвращается 0):
- Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toFloat64OrZero('0xc0fe');.
Возвращаемое значение
- 64-битное значение типа Float при успешном выполнении, в противном случае —
0. Float64.
Пример
Запрос:
Результат:
См. также
toFloat64OrNull
Подобно toFloat64, эта функция преобразует входное значение в значение типа Float64, но в случае ошибки возвращает NULL.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления типов (U)Int8/16/32/128/256, Float32/64.
Неподдерживаемые аргументы (возвращают \N):
- Строковые представления значений в двоичном и шестнадцатеричном виде, например
SELECT toFloat64OrNull('0xc0fe');.
Возвращаемое значение
- 64-битное число с плавающей запятой при успешном преобразовании, в противном случае
\N. Float64.
Пример
Запрос:
Результат:
См. также
toFloat64OrDefault
Как и функция toFloat64, эта функция преобразует входное значение в значение типа Float64, но в случае ошибки возвращает значение по умолчанию.
Если аргумент default не указан, то в случае ошибки возвращается 0.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression / String.default(необязательный параметр) — значение по умолчанию, которое возвращается, если преобразование к типуFloat64не удалось. Float64.
Поддерживаемые аргументы:
- Значения типа (U)Int8/16/32/64/128/256.
- Строковые представления (U)Int8/16/32/128/256.
- Значения типа Float32/64, включая
NaNиInf. - Строковые представления Float32/64, включая
NaNиInf(без учета регистра символов).
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toFloat64OrDefault('0xc0fe', CAST('0', 'Float64'));.
Возвращаемое значение
- 64-битное значение типа
Float64при успешном преобразовании; в противном случае возвращается значение по умолчанию, если оно задано, или0, если нет. Float64.
Пример
Запрос:
Результат:
См. также
toBFloat16
Преобразует входное значение в значение типа BFloat16.
В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.
Поддерживаемые аргументы:
- Значения типов (U)Int8/16/32/64/128/256.
- Строковые представления (U)Int8/16/32/128/256.
- Значения типов Float32/64, включая
NaNиInf. - Строковые представления Float32/64, включая
NaNиInf(без учета регистра).
Возвращаемое значение
- 16-битное значение в формате brain-float. BFloat16.
Пример
См. также
toBFloat16OrZero
Преобразует строковое входное значение в значение типа BFloat16.
Если строка не представляет корректное число с плавающей запятой, функция возвращает ноль.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления числовых значений.
Неподдерживаемые аргументы (возвращают 0):
- Строковые представления двоичных и шестнадцатеричных чисел.
- Числовые значения.
Возвращаемое значение
- 16-битное значение в формате brain-float, иначе
0. BFloat16.
Функция допускает незаметную потерю точности при преобразовании из строкового представления.
Пример
См. также
toBFloat16OrNull
Преобразует входное строковое значение в значение типа BFloat16,
но если строка не представляет собой число с плавающей запятой, функция возвращает NULL.
Синтаксис
Аргументы
x— строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления числовых значений.
Неподдерживаемые аргументы (возвращают NULL):
- Строковые представления двоичных и шестнадцатеричных значений.
- Числовые значения.
Возвращаемое значение
- 16-битное значение в формате brain-float, иначе
NULL(\N). BFloat16.
Функция допускает незаметную потерю точности при преобразовании из строкового представления.
Пример
См. также
toDate
Приводит аргумент к типу данных Date.
Если аргумент имеет тип DateTime или DateTime64, функция усекает его и оставляет только компонент даты из DateTime:
Если аргумент имеет тип String, он интерпретируется как Date или DateTime. Если он был интерпретирован как DateTime, используется только компонент даты:
Если аргумент — число и выглядит как UNIX-метка времени (больше 65535), он интерпретируется как DateTime, затем усекается до Date в текущем часовом поясе. Часовой пояс можно задать вторым аргументом функции. Усечение до Date зависит от часового пояса:
Приведённый выше пример демонстрирует, как один и тот же UNIX‑таймстемп может интерпретироваться как разные даты в разных часовых поясах.
Если аргумент является числом и меньше 65536, он интерпретируется как количество дней, прошедших с 1970-01-01 (первого UNIX-дня), и преобразуется в Date. Это соответствует внутреннему числовому представлению типа данных Date. Пример:
Это преобразование не зависит от часовых поясов.
Если аргумент выходит за диапазон типа Date, поведение определяется реализацией: значение может быть ограничено максимально поддерживаемой датой или переполниться:
Функцию toDate можно также записать другими способами:
toDateOrZero
То же, что и toDate, но при получении некорректного аргумента возвращает нижнюю границу типа Date. Поддерживается только аргумент типа String.
Пример
Запрос:
Результат:
toDateOrNull
То же, что и toDate, но возвращает NULL, если передан некорректный аргумент. Поддерживается только аргумент типа String.
Пример
Запрос:
Результат:
toDateOrDefault
Аналог функции toDate, но при неуспешном преобразовании возвращает значение по умолчанию — либо второй аргумент (если он указан), либо нижнюю границу типа Date.
Синтаксис
Пример
Запрос:
Результат:
toDateTime
Преобразует входное значение в значение типа DateTime.
Синтаксис
Аргументы
Если expr — число, оно интерпретируется как количество секунд с начала эпохи Unix (Unix timestamp).
Если expr — String, оно может быть интерпретировано как Unix timestamp или как строковое представление даты / даты и времени.
По этой причине разбор строковых представлений коротких числовых значений (до 4 цифр включительно) явно отключён из‑за неоднозначности: например, строка '1999' может быть как годом (неполным строковым представлением Date / DateTime), так и Unix timestamp. Более длинные числовые строки разрешены.
Возвращаемое значение
- Дата и время. DateTime
Пример
Запрос:
Результат:
toDateTimeOrZero
То же, что и toDateTime, но возвращает нижнюю границу типа DateTime, если передан недопустимый аргумент. Поддерживается только аргумент типа String.
Пример
Запрос:
Результат:
toDateTimeOrNull
Такая же функция, как toDateTime, но возвращает NULL, если передан некорректный аргумент. Поддерживается только аргумент типа String.
Пример
Запрос:
Результат:
toDateTimeOrDefault
Аналогично toDateTime, но в случае неуспешного преобразования возвращает значение по умолчанию — либо третий аргумент (если он указан), либо нижнюю границу типа DateTime.
Синтаксис
Пример
Запрос:
Результат:
toDate32
Преобразует аргумент в тип данных Date32. Если значение выходит за допустимый диапазон, toDate32 возвращает граничные значения, поддерживаемые Date32. Если аргумент имеет тип Date, учитываются его границы диапазона.
Синтаксис
Аргументы
Возвращаемое значение
- Календарная дата. Тип Date32.
Пример
- Значение входит в диапазон:
- Значение находится вне допустимого диапазона:
- С аргументом типа Date:
toDate32OrZero
То же, что и toDate32, но возвращает минимальное значение типа Date32, если передан некорректный аргумент.
Пример
Запрос:
Результат:
toDate32OrNull
То же, что и toDate32, но возвращает NULL, если получен некорректный аргумент.
Пример
Запрос:
Результат:
toDate32OrDefault
Преобразует аргумент к типу данных Date32. Если значение выходит за допустимый диапазон, toDate32OrDefault возвращает нижнюю границу диапазона значений, поддерживаемого Date32. Если аргумент имеет тип Date, его границы также учитываются. Возвращает значение по умолчанию, если получен некорректный аргумент.
Пример
Запрос:
Результат:
toDateTime64
Преобразует входной аргумент в значение типа DateTime64.
Синтаксис
Аргументы
expr— значение. String, UInt32, Float или DateTime.scale— размер тика (точность): 10-precision секунды. Допустимый диапазон: [ 0 : 9 ].timezone(необязательный параметр) — часовой пояс указанного объекта типа DateTime64.
Возвращаемое значение
- Календарная дата и время суток с точностью до долей секунды. DateTime64.
Пример
- Значение лежит в диапазоне:
- Как десятичное число с заданной точностью:
Если десятичная точка отсутствует, значение по-прежнему интерпретируется как Unix timestamp в секундах:
- С параметром
timezone:
toDateTime64OrZero
Подобно функции toDateTime64, эта функция преобразует входное значение в значение типа DateTime64, но при некорректном аргументе возвращает минимальное значение DateTime64.
Синтаксис
Аргументы
expr— значение. String, UInt32, Float или DateTime.scale— размер тика (точность): 10-precision секунды. Допустимый диапазон: [ 0 : 9 ].timezone(необязательный параметр) — часовой пояс указанного объекта DateTime64.
Возвращаемое значение
- Календарная дата и время суток с точностью до долей секунды, иначе возвращается минимальное значение
DateTime64:1970-01-01 01:00:00.000. DateTime64.
Пример
Запрос:
Результат:
См. также:
toDateTime64OrNull
Подобно функции toDateTime64, эта функция преобразует входное значение в значение типа DateTime64, но возвращает NULL, если передан некорректный аргумент.
Синтаксис
Аргументы
expr— значение. String, UInt32, Float или DateTime.scale— размер тика (точность): 10-precision секунды. Допустимый диапазон значений: [ 0 : 9 ].timezone(необязательный параметр) — часовой пояс указанного объекта DateTime64.
Возвращаемое значение
- Календарная дата и время суток с субсекундной точностью, в противном случае —
NULL. DateTime64/NULL.
Пример
Запрос:
Результат:
См. также
toDateTime64OrDefault
Как и toDateTime64, эта функция преобразует входное значение в значение типа DateTime64, но возвращает либо значение по умолчанию типа DateTime64, либо указанное значение по умолчанию, если передан некорректный аргумент.
Синтаксис
Аргументы
expr— значение. String, UInt32, Float или DateTime.scale— размер тика (точность): 10-precision секунд. Допустимый диапазон: [ 0 : 9 ].timezone(необязательный) — часовой пояс указанного объектаDateTime64.default(необязательный) — значение по умолчанию, возвращаемое при передаче некорректного аргумента. DateTime64.
Возвращаемое значение
- Календарная дата и время суток с точностью до долей секунды, либо минимальное значение
DateTime64, либо значениеdefault, если оно указано. DateTime64.
Пример
Запрос:
Результат:
См. также
toDecimal32
Преобразует входное значение в значение типа Decimal(9, S) с масштабом S. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression.S— параметр масштаба от 0 до 9, задающий, сколько цифр может иметь дробная часть числа. UInt8.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения или строковые представления типов Float32/64.
Неподдерживаемые аргументы:
- Значения или строковые представления значений Float32/64
NaNиInf(без учёта регистра). - Строковые представления двоичных и шестнадцатеричных значений, например
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.
Вы можете использовать строковый аргумент, чтобы операции выполнялись над целочисленным типом: toDecimal32('1.15', 2) = 1.15
Возвращаемое значение
- Значение типа
Decimal(9, S). Decimal32(S).
Пример
Запрос:
Результат:
См. также
toDecimal32OrZero
Как и toDecimal32, эта функция преобразует входное значение в значение типа Decimal(9, S), но в случае ошибки возвращает 0.
Синтаксис
Аргументы
expr— строковое представление числа. String.S— параметр масштаба от 0 до 9, определяющий количество знаков в дробной части числа. UInt8.
Поддерживаемые аргументы:
- Строковые представления значений типов (U)Int8/16/32/64/128/256.
- Строковые представления значений типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toDecimal32OrZero('0xc0fe', 1);.
Переполнение может произойти, если значение expr выходит за допустимый диапазон значений типа Decimal32: ( -1 * 10^(9 - S), 1 * 10^(9 - S) ).
Лишние цифры в дробной части отбрасываются (без округления).
Лишние цифры в целой части приводят к ошибке.
Возвращаемое значение
- Значение типа
Decimal(9, S)в случае успешного выполнения, в противном случае —0сSзнаками после запятой. Decimal32(S).
Пример
Запрос:
Результат:
См. также
toDecimal32OrNull
Как и toDecimal32, эта функция преобразует входное значение в значение типа Nullable(Decimal(9, S)), но в случае ошибки возвращает 0.
Синтаксис
Аргументы
expr— строковое представление числа. String.S— параметр масштаба от 0 до 9, определяющий, сколько цифр может иметь дробная часть числа. UInt8.
Поддерживаемые аргументы:
- Строковые представления типов (U)Int8/16/32/64/128/256.
- Строковые представления типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toDecimal32OrNull('0xc0fe', 1);.
Переполнение может произойти, если значение expr выходит за пределы типа Decimal32: ( -1 * 10^(9 - S), 1 * 10^(9 - S) ).
Лишние цифры в дробной части отбрасываются (не округляются).
Лишние цифры в целой части приводят к ошибке.
Возвращаемое значение
- Значение типа
Nullable(Decimal(9, S))при успешном выполнении, иначе значениеNULLтого же типа. Decimal32(S).
Примеры
Запрос:
Результат:
См. также
toDecimal32OrDefault
Подобно toDecimal32, эта функция преобразует входное значение в значение типа Decimal(9, S), но в случае ошибки возвращает значение по умолчанию.
Синтаксис
Аргументы
expr— строковое представление числа. String.S— параметр масштаба от 0 до 9, задающий, сколько цифр может иметь дробная часть числа. UInt8.default(необязательный) — значение по умолчанию, возвращаемое, если преобразование к типуDecimal32(S)завершилось неудачно. Decimal32(S).
Поддерживаемые аргументы:
- Строковые представления значений типов (U)Int8/16/32/64/128/256.
- Строковые представления значений типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например:
SELECT toDecimal32OrDefault('0xc0fe', 1);.
Переполнение может произойти, если значение expr выходит за границы типа Decimal32: ( -1 * 10^(9 - S), 1 * 10^(9 - S) ).
Лишние цифры в дробной части отбрасываются (без округления).
Избыточное количество цифр в целой части приведёт к ошибке.
При преобразованиях лишние цифры отбрасываются, и поведение может быть неожиданным при работе с входными значениями Float32/Float64, так как операции выполняются с использованием инструкций с плавающей запятой.
Например: toDecimal32OrDefault(1.15, 2) равно 1.14, потому что 1.15 * 100 в формате с плавающей запятой даёт 114.99.
Можно использовать строковый аргумент, чтобы операции выполнялись над целочисленным типом: toDecimal32OrDefault('1.15', 2) = 1.15
Возвращаемое значение
- Значение типа
Decimal(9, S)при успешном преобразовании, иначе возвращается значение по умолчанию, если оно передано, или0, если не передано. Decimal32(S).
Примеры
Запрос:
Результат:
См. также
toDecimal64
Преобразует входное значение в значение типа Decimal(18, S) с масштабом S. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.S— параметр масштаба от 0 до 18, определяющий, сколько цифр может иметь дробная часть числа. UInt8.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения или строковые представления типов Float32/64.
Неподдерживаемые аргументы:
- Значения или строковые представления значений Float32/64
NaNиInf(без учета регистра). - Строковые представления двоичных и шестнадцатеричных значений, например
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.
Вы можете использовать входное значение типа String, чтобы операции использовали базовый целочисленный тип: toDecimal64('1.15', 2) = 1.15
Возвращаемое значение
- Значение типа
Decimal(18, S). Decimal64(S).
Пример
Запрос:
Результат:
См. также
toDecimal64OrZero
Как и toDecimal64, эта функция преобразует входное значение в значение типа Decimal(18, S), но при ошибке возвращает 0.
Синтаксис
Аргументы
expr— строковое представление числа. String.S— параметр масштаба от 0 до 18, задающий, сколько цифр может иметь дробная часть числа. UInt8.
Поддерживаемые аргументы:
- Строковые представления типов (U)Int8/16/32/64/128/256.
- Строковые представления типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toDecimal64OrZero('0xc0fe', 1);.
Переполнение возможно, если значение expr выходит за границы типа Decimal64: ( -1 * 10^(18 - S), 1 * 10^(18 - S) ).
Лишние цифры в дробной части отбрасываются (не округляются).
Лишние цифры в целой части приводят к ошибке.
Возвращаемое значение
- Значение типа
Decimal(18, S)в случае успешного выполнения, иначе —0сSзнаками после запятой. Decimal64(S).
Пример
Запрос:
Результат:
См. также
toDecimal64OrNull
Как и функция toDecimal64, эта функция преобразует входное значение в значение типа Nullable(Decimal(18, S)), но в случае ошибки возвращает 0.
Синтаксис
Аргументы
expr— строковое представление числа. String.S— параметр масштаба от 0 до 18, определяющий, сколько цифр может иметь дробная часть числа. UInt8.
Поддерживаемые аргументы:
- Строковые представления типов (U)Int8/16/32/64/128/256.
- Строковые представления типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toDecimal64OrNull('0xc0fe', 1);.
Может произойти переполнение, если значение expr выходит за допустимые пределы типа Decimal64: ( -1 * 10^(18 - S), 1 * 10^(18 - S) ).
Избыточные цифры в дробной части отбрасываются (без округления).
Избыточные цифры в целой части приводят к ошибке.
Возвращаемое значение
- Значение типа
Nullable(Decimal(18, S))при успешном выполнении, в противном случае — значениеNULLтого же типа. Decimal64(S).
Примеры
Запрос:
Результат:
См. также
toDecimal64OrDefault
Как и toDecimal64, эта функция преобразует входное значение в значение типа Decimal(18, S), но при ошибке возвращает значение по умолчанию.
Синтаксис
Аргументы
expr— Строковое представление числа. String.S— Параметр масштаба от 0 до 18, задающий, сколько цифр может иметь дробная часть числа. UInt8.default(опционально) — Значение по умолчанию, которое возвращается, если преобразование к типуDecimal64(S)завершилось неуспешно. Decimal64(S).
Поддерживаемые аргументы:
- Строковые представления типов (U)Int8/16/32/64/128/256.
- Строковые представления типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например:
SELECT toDecimal64OrDefault('0xc0fe', 1);.
Переполнение может произойти, если значение expr выходит за пределы Decimal64: ( -1 * 10^(18 - S), 1 * 10^(18 - S) ).
Лишние цифры в дробной части отбрасываются (не округляются).
Лишние цифры в целой части приведут к ошибке.
При преобразованиях лишние цифры отбрасываются, и поведение при работе с входными значениями Float32/Float64 может оказаться неожиданным, поскольку операции выполняются с использованием инструкций с плавающей запятой.
Например: toDecimal64OrDefault(1.15, 2) равно 1.14, потому что 1.15 * 100 в формате с плавающей запятой равно 114.99.
Вы можете использовать строковый аргумент, чтобы операции выполнялись с использованием целочисленного базового типа: toDecimal64OrDefault('1.15', 2) = 1.15
Возвращаемое значение
- Значение типа
Decimal(18, S)в случае успеха, в противном случае возвращается значение по умолчанию, если оно передано, или0, если нет. Decimal64(S).
Примеры
Запрос:
Результат:
См. также
toDecimal128
Преобразует входное значение в значение типа Decimal(38, S) с масштабом S. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Выражение.S— параметр масштаба в диапазоне от 0 до 38, определяющий, сколько цифр может быть в дробной части числа. UInt8.
Поддерживаемые аргументы:
- Значения или строковые представления значений типов (U)Int8/16/32/64/128/256.
- Значения или строковые представления значений типов Float32/64.
Неподдерживаемые аргументы:
- Значения или строковые представления значений Float32/64
NaNиInf(без учета регистра). - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toDecimal128('0xc0fe', 1);.
Может произойти переполнение, если значение expr выходит за пределы диапазона Decimal128: ( -1 * 10^(38 - S), 1 * 10^(38 - S) ).
Лишние цифры в дробной части отбрасываются (не округляются).
Лишние цифры в целой части приводят к исключению.
При преобразованиях лишние цифры отбрасываются, и поведение может быть неожиданным при работе с входными данными Float32/Float64, так как операции выполняются с использованием инструкций с плавающей запятой.
Например: toDecimal128(1.15, 2) равно 1.14, потому что 1.15 * 100 в формате с плавающей запятой равно 114.99.
Вы можете использовать строковый аргумент, чтобы операции выполнялись над базовым целочисленным типом: toDecimal128('1.15', 2) = 1.15
Возвращаемое значение
- Значение типа
Decimal(38, S). Decimal128(S).
Пример
Запрос:
Результат:
См. также
toDecimal128OrZero
Аналогично функции toDecimal128, эта функция преобразует входное значение в тип Decimal(38, S), но в случае ошибки возвращает 0.
Синтаксис
Аргументы
expr— Строковое представление числа. String.S— Параметр масштаба от 0 до 38, задающий, сколько цифр может иметь дробная часть числа. UInt8.
Поддерживаемые аргументы:
- Строковые представления чисел типов (U)Int8/16/32/64/128/256.
- Строковые представления чисел типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toDecimal128OrZero('0xc0fe', 1);.
Может произойти переполнение, если значение expr выходит за пределы диапазона Decimal128: ( -1 * 10^(38 - S), 1 * 10^(38 - S) ).
Лишние цифры в дробной части отбрасываются (не округляются).
Избыточные цифры в целой части приведут к ошибке.
Возвращаемое значение
- Значение типа
Decimal(38, S)в случае успеха, иначе0сSзнаками после запятой. Decimal128(S).
Пример
Запрос:
Результат:
См. также
toDecimal128OrNull
Аналогично функции toDecimal128, эта функция преобразует входное значение в значение типа Nullable(Decimal(38, S)), однако в случае ошибки возвращает 0.
Синтаксис
Аргументы
expr— строковое представление числа. String.S— параметр масштаба от 0 до 38, определяющий, сколько цифр может иметь дробная часть числа. UInt8.
Поддерживаемые аргументы:
- Строковые представления типов (U)Int8/16/32/64/128/256.
- Строковые представления типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toDecimal128OrNull('0xc0fe', 1);.
Переполнение может произойти, если значение expr выходит за пределы диапазона Decimal128: ( -1 * 10^(38 - S), 1 * 10^(38 - S) ).
Лишние цифры в дробной части отбрасываются (не округляются).
Лишние цифры в целой части приведут к ошибке.
Возвращаемое значение
- Значение типа
Nullable(Decimal(38, S))при успешном выполнении, иначе значениеNULLтого же типа. Decimal128(S).
Примеры
Запрос:
Результат:
Смотрите также
toDecimal128OrDefault
Как и функция toDecimal128, эта функция преобразует входное значение в тип Decimal(38, S), но в случае ошибки возвращает значение по умолчанию.
Синтаксис
Аргументы
expr— Строковое представление числа. String.S— Параметр масштаба в диапазоне от 0 до 38, определяющий, сколько цифр может иметь дробная часть числа. UInt8.default(необязательный) — Значение по умолчанию, которое возвращается, если преобразование к типуDecimal128(S)не удалось. Decimal128(S).
Поддерживаемые аргументы:
- Строковые представления значений типов (U)Int8/16/32/64/128/256.
- Строковые представления значений типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toDecimal128OrDefault('0xc0fe', 1);.
Может произойти переполнение, если значение expr выходит за пределы типа Decimal128: ( -1 * 10^(38 - S), 1 * 10^(38 - S) ).
Лишние цифры в дробной части отбрасываются (не округляются).
Избыточные цифры в целой части приведут к ошибке.
При преобразованиях лишние цифры отбрасываются, и поведение может оказаться неожиданным при работе со входными значениями Float32/Float64, так как операции выполняются с использованием инструкций с плавающей запятой.
Например: toDecimal128OrDefault(1.15, 2) будет равно 1.14, потому что 1.15 * 100 в представлении с плавающей запятой равно 114.99.
Вы можете использовать строковый аргумент, чтобы операции выполнялись над базовым целочисленным типом: toDecimal128OrDefault('1.15', 2) = 1.15
Возвращаемое значение
- Значение типа
Decimal(38, S)при успешном выполнении, в противном случае — значение по умолчанию, если оно передано, или0, если не передано. Decimal128(S).
Примеры
Запрос:
Результат:
Смотрите также
toDecimal256
Преобразует входное значение в значение типа Decimal(76, S) с масштабом S. В случае ошибки выбрасывает исключение.
Синтаксис
Аргументы
expr— выражение, возвращающее число или строковое представление числа. Expression.S— параметр масштаба от 0 до 76, определяющий, сколько цифр может содержать дробная часть числа. UInt8.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения или строковые представления типов Float32/64.
Неподдерживаемые аргументы:
- Значения или строковые представления значений Float32/64
NaNиInf(без учёта регистра). - Строковые представления двоичных и шестнадцатеричных значений, например:
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.
Вы можете использовать входное значение типа String, чтобы операции выполнялись над целочисленным типом: toDecimal256('1.15', 2) = 1.15
Возвращаемое значение
- Значение типа
Decimal(76, S). Decimal256(S).
Пример
Запрос:
Результат:
См. также
toDecimal256OrZero
Аналогично toDecimal256, эта функция преобразует входное значение в значение типа Decimal(76, S), но в случае ошибки возвращает 0.
Синтаксис
Аргументы
expr— строковое представление числа. String.S— параметр масштаба от 0 до 76, определяющий, сколько цифр может содержать дробная часть числа. UInt8.
Поддерживаемые аргументы:
- Строковые представления типов (U)Int8/16/32/64/128/256.
- Строковые представления типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toDecimal256OrZero('0xc0fe', 1);.
Переполнение может произойти, если значение expr выходит за границы Decimal256: ( -1 * 10^(76 - S), 1 * 10^(76 - S) ).
Лишние цифры в дробной части отбрасываются (не округляются).
Лишние цифры в целой части приведут к ошибке.
Возвращаемое значение
- Значение типа
Decimal(76, S)при успешном выполнении, иначе0сSзнаками после запятой. Decimal256(S).
Пример
Запрос:
Результат:
См. также
toDecimal256OrNull
Как и toDecimal256, эта функция преобразует входное значение в значение типа Nullable(Decimal(76, S)), но при ошибке возвращает 0.
Синтаксис
Аргументы
expr— строковое представление числа. String.S— параметр масштаба от 0 до 76, определяющий, сколько цифр может быть в дробной части числа. UInt8.
Поддерживаемые аргументы:
- Строковые представления типов (U)Int8/16/32/64/128/256.
- Строковые представления типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toDecimal256OrNull('0xc0fe', 1);.
Переполнение может произойти, если значение expr выходит за пределы Decimal256: ( -1 * 10^(76 - S), 1 * 10^(76 - S) ).
Лишние цифры в дробной части отбрасываются (не округляются).
Лишние цифры в целой части приведут к ошибке.
Возвращаемое значение
- Значение типа
Nullable(Decimal(76, S))при успешном выполнении, иначе значениеNULLтого же типа. Decimal256(S).
Примеры
Запрос:
Результат:
См. также
toDecimal256OrDefault
Как и функция toDecimal256, эта функция преобразует входное значение в значение типа Decimal(76, S), но в случае ошибки возвращает значение по умолчанию.
Синтаксис
Аргументы
expr— строковое представление числа. String.S— параметр масштаба в диапазоне от 0 до 76, определяющий, сколько цифр может иметь дробная часть числа. UInt8.default(необязательный) — значение по умолчанию, которое возвращается, если преобразование к типуDecimal256(S)выполнить не удалось. Decimal256(S).
Поддерживаемые аргументы:
- Строковые представления типов (U)Int8/16/32/64/128/256.
- Строковые представления типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64
NaNиInf. - Строковые представления двоичных и шестнадцатеричных значений, например
SELECT toDecimal256OrDefault('0xc0fe', 1);.
Переполнение может произойти, если значение expr выходит за пределы диапазона Decimal256: ( -1 * 10^(76 - S), 1 * 10^(76 - S) ).
Лишние цифры в дробной части отбрасываются (не округляются).
Лишние цифры в целой части приведут к ошибке.
При преобразованиях лишние цифры отбрасываются, и поведение может оказаться неожиданным при работе с входными значениями Float32/Float64, так как операции выполняются с использованием инструкций с плавающей запятой.
Например: toDecimal256OrDefault(1.15, 2) равно 1.14, потому что 1.15 * 100 в формате с плавающей запятой равно 114.99.
Вы можете использовать строковый аргумент, чтобы операции выполнялись над базовым целочисленным типом: toDecimal256OrDefault('1.15', 2) = 1.15
Возвращаемое значение
- Значение типа
Decimal(76, S)при успешном выполнении, иначе возвращается значение по умолчанию, если оно передано, или0, если нет. Decimal256(S).
Примеры
Запрос:
Результат:
См. также
toString
Преобразует значения в их строковое представление. Для аргументов типа DateTime функция может принимать второй аргумент типа String, содержащий имя часового пояса.
Синтаксис
Аргументы
value: Значение, которое нужно преобразовать в строку.Any.timezone: Необязательный параметр. Имя часового пояса для преобразованияDateTime.String.
Возвращаемое значение
- Возвращает строковое представление исходного значения.
String.
Примеры
Пример использования
toFixedString
Преобразует аргумент типа String в тип FixedString(N) (строку фиксированной длины N). Если строка содержит меньше байт, чем N, она дополняется нулевыми байтами справа. Если строка содержит больше байт, чем N, генерируется исключение.
Синтаксис
Аргументы
Возвращаемое значение
- Фиксированная строка длины N, полученная из
s. FixedString.
Пример
Запрос:
Результат:
toStringCutToZero
Принимает аргумент типа String или FixedString. Возвращает строку типа String, усечённую на первом найденном нулевом байте.
Синтаксис
Пример
Запрос:
Результат:
Запрос:
Результат:
toDecimalString
Преобразует числовое значение в значение типа String с количеством дробных знаков в результирующей строке, заданным пользователем.
Синтаксис
Аргументы
number— значение типа Int, UInt, Float, Decimal, которое будет представлено в виде String,scale— количество знаков после запятой, UInt8.
Возвращаемое значение
- Входное значение, представленное как String с заданным количеством знаков после запятой (
scale). Число округляется вверх или вниз по обычным арифметическим правилам, если запрошенное значениеscaleменьше исходногоscaleчисла.
Пример
Запрос:
Результат:
reinterpretAsUInt8
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа UInt8. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не имеет смысла.
Синтаксис
Параметры
x: значение, байтовое представление которого нужно интерпретировать как UInt8. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, интерпретированное по байтам как UInt8. UInt8.
Пример
Запрос:
Результат:
reinterpretAsUInt16
Выполняет байтовую переинтерпретацию, рассматривая входное значение как значение типа UInt16. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить тип входного значения, результат не имеет осмысленного значения.
Синтаксис
Параметры
x: значение для побайтовой переинтерпретации в UInt16. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, переинтерпретированное как UInt16. UInt16.
Пример
Запрос:
Результат:
reinterpretAsUInt32
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt32. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить значение входного типа, результат не имеет смысла.
Синтаксис
Параметры
x: значение, которое нужно побайтово переинтерпретировать как UInt32. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, побайтово переинтерпретированное как UInt32. UInt32.
Пример
Запрос:
Результат:
reinterpretAsUInt64
Выполняет побайтовую переинтерпретацию, трактуя входное значение как значение типа UInt64. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не имеет смысла.
Синтаксис
Параметры
x: значение, которое нужно побайтно интерпретировать как UInt64. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, побайтно интерпретированное как UInt64. UInt64.
Пример
Запрос:
Результат:
reinterpretAsUInt128
Выполняет побайтовую переинтерпретацию, трактуя входное значение как значение типа UInt128. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить тип входного значения, результат не имеет смысла.
Синтаксис
Параметры
x: значение, которое нужно побайтно переинтерпретировать как UInt128. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, побайтно переинтерпретированное как UInt128. UInt128.
Пример
Запрос:
Результат:
reinterpretAsUInt256
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа UInt256. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат не имеет смысла.
Синтаксис
Параметры
x: значение, которое следует интерпретировать побайтно как UInt256. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, интерпретированное побайтно как UInt256. UInt256.
Пример
Запрос:
Результат:
reinterpretAsInt8
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Int8. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить значение входного типа, результат не имеет смысла.
Синтаксис
Параметры
x: значение, байтовое представление которого переинтерпретируется как Int8. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, переинтерпретированное как Int8. Int8.
Пример
Запрос:
Результат:
reinterpretAsInt16
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Int16. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить тип входного значения, результат будет произвольным.
Синтаксис
Параметры
x: значение для побайтовой интерпретации как Int16. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
xпосле побайтовой интерпретации как Int16. Int16.
Пример
Запрос:
Результат:
reinterpretAsInt32
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Int32. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить тип входного значения, результат становится бессмысленным.
Синтаксис
Параметры
x: значение, которое нужно побайтно интерпретировать как Int32. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, переинтерпретированное как Int32. Int32.
Пример
Запрос:
Результат:
reinterpretAsInt64
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Int64. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, результат будет бессмысленным.
Синтаксис
Параметры
x: значение для байтовой переинтерпретации как Int64. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, байтово переинтерпретированное как Int64. Int64.
Пример
Запрос:
Результат:
reinterpretAsInt128
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int128. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить значение исходного типа, результат не имеет смысла.
Синтаксис
Параметры
x: значение для побайтовой переинтерпретации как Int128. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, побайтно переинтерпретированное как Int128. Int128.
Пример
Запрос:
Результат:
reinterpretAsInt256
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Int256. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входное значение, полученное значение не имеет смысла.
Синтаксис
Параметры
x: значение, байтовое представление которого переинтерпретируется как Int256. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, переинтерпретированное как Int256. Int256.
Пример
Запрос:
Результат:
reinterpretAsFloat32
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Float32. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может корректно представить исходное, результат не имеет смысла.
Синтаксис
Параметры
x: значение, которое будет интерпретировано как Float32. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, интерпретированное как Float32. Float32.
Пример
Запрос:
Результат:
reinterpretAsFloat64
Выполняет побайтовую переинтерпретацию, рассматривая входное значение как значение типа Float64. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат будет некорректным.
Синтаксис
Параметры
x: значение, интерпретируемое как Float64. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Значение
x, интерпретированное как Float64. Float64.
Пример
Запрос:
Результат:
reinterpretAsDate
Принимает значение типа String, FixedString или числовое значение и интерпретирует байты как число в порядке байтов хоста (little-endian). Возвращает дату, соответствующую количеству дней, прошедших с начала эпохи Unix.
Синтаксис
Параметры
x: количество дней с начала эпохи Unix. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Дата. Date.
Детали реализации
Если переданная строка слишком короткая, функция работает так, как будто строка дополнена необходимым количеством нулевых байтов. Если строка длиннее требуемой, лишние байты игнорируются.
Пример
Запрос:
Результат:
reinterpretAsDateTime
Эти функции принимают строку и интерпретируют байты, расположенные в начале строки, как число в порядке байтов хоста (little endian). Возвращают дату и время, интерпретируемые как количество секунд с начала эпохи Unix.
Синтаксис
Параметры
x: количество секунд с начала эпохи Unix. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Дата и время. DateTime.
Детали реализации
Если переданная строка слишком короткая, функция работает так, как будто строка дополнена необходимым числом нулевых байтов. Если строка длиннее, чем нужно, лишние байты игнорируются.
Пример
Запрос:
Результат:
reinterpretAsString
Эта функция принимает число, дату или дату со временем и возвращает строку, содержащую байты, представляющие соответствующее значение в порядке байт хоста (little-endian). Нулевые байты удаляются с конца. Например, значение типа UInt32, равное 255, представляется строкой длиной один байт.
Синтаксис
Параметры
Возвращаемое значение
- Строка, содержащая байтовое представление
x. String.
Пример
Запрос:
Результат:
reinterpretAsFixedString
Эта функция принимает на вход число, дату или дату со временем и возвращает значение типа FixedString, содержащее байты, представляющие соответствующее значение в порядке байтов хоста (little-endian). Нулевые байты отбрасываются с конца. Например, значение типа UInt32, равное 255, — это FixedString длиной в один байт.
Синтаксис
Параметры
Возвращаемое значение
- Строка фиксированной длины, содержащая байты, представляющие
x. FixedString.
Пример
Запрос:
Результат:
reinterpretAsUUID
Помимо перечисленных здесь функций для работы с UUID, существует отдельная документация по функциям UUID.
Принимает строку длиной 16 байт и возвращает UUID, интерпретируя каждую 8-байтовую половину в порядке байт little-endian. Если строка слишком короткая, функция работает так, как если бы строка была дополнена необходимым количеством нулевых байт в конце. Если строка длиннее 16 байт, лишние байты в конце игнорируются.
Синтаксис
Аргументы
fixed_string— байтовая строка в порядке байтов big-endian. FixedString.
Возвращаемое значение
- Значение типа UUID. UUID.
Примеры
Преобразование строки в UUID.
Запрос:
Результат:
Преобразование строк в UUID и обратно.
Запрос:
Результат:
reinterpret
Использует ту же последовательность байт в памяти для значения x и интерпретирует её как значение целевого типа.
Синтаксис
Аргументы
x— Значение любого типа.type— Целевой тип. Если это массив, то тип его элементов должен иметь фиксированную длину.
Возвращаемое значение
- Значение целевого типа.
Примеры
Запрос:
Результат:
Запрос:
Результат:
CAST
Преобразует входное значение к указанному типу данных. В отличие от функции reinterpret, CAST пытается представить то же значение, используя новый тип данных. Если преобразование невозможно, выбрасывается исключение.
Поддерживается несколько вариантов синтаксиса.
Синтаксис
Аргументы
x— Значение для преобразования. Может быть любого типа.T— Имя целевого типа данных. String.t— Целевой тип данных.
Возвращаемое значение
- Преобразованное значение.
Если входное значение не укладывается в диапазон целевого типа, происходит переполнение результата. Например, CAST(-1, 'UInt8') возвращает 255.
Примеры
Запрос:
Результат:
Запрос:
Результат:
Преобразование к типу FixedString (N) работает только для аргументов типа String или FixedString.
Поддерживается преобразование типа в Nullable и обратно.
Пример
Запрос:
Результат:
Запрос:
Результат:
См. также
- Настройка cast_keep_nullable
accurateCast(x, T)
Преобразует x к типу данных T.
Отличие от cast заключается в том, что accurateCast не допускает переполнения числовых типов при приведении, если значение x не укладывается в диапазон типа T. Например, accurateCast(-1, 'UInt8') вызывает исключение.
Пример
Запрос:
Результат:
Запрос:
Результат:
accurateCastOrNull(x, T)
Преобразует входное значение x в указанный тип данных T. Всегда возвращает тип Nullable и значение NULL, если результат приведения не может быть представлен в целевом типе.
Синтаксис
Аргументы
x— входное значение.T— имя возвращаемого типа данных.
Возвращаемое значение
- Значение, приведённое к указанному типу данных
T.
Пример
Запрос:
Результат:
Запрос:
Результат:
accurateCastOrDefault(x, T[, default_value])
Преобразует входное значение x в указанный тип данных T. Возвращает значение типа по умолчанию или default_value (если оно задано), если результат приведения не может быть представлен в целевом типе.
Синтаксис
Аргументы
x— входное значение.T— имя возвращаемого типа данных.default_value— значение по умолчанию для возвращаемого типа данных.
Возвращаемое значение
- Значение, преобразованное к указанному типу данных
T.
Пример
Запрос:
Результат:
Запрос:
Результат:
toInterval
Создаёт значение типа данных Interval из числового значения и единицы измерения интервала (например, 'second' или 'day').
Синтаксис
Аргументы
-
value— Длина интервала. Целые числа, их строковые представления или числа с плавающей запятой. (U)Int*/Float*/String. -
unit— Тип создаваемого интервала. String Literal. Возможные значения:nanosecondmicrosecondmillisecondsecondminutehourdayweekmonthquarteryear
Аргумент
unitнечувствителен к регистру.
Возвращаемое значение
- Полученный интервал. Interval
Пример
toIntervalYear
Возвращает интервал продолжительностью n лет типа данных IntervalYear.
Синтаксис
Аргументы
n— количество лет. Целые числа, их строковые представления или числа с плавающей запятой. (U)Int*/Float*/String.
Возвращаемые значения
- Интервал длительностью
nлет. IntervalYear.
Пример
Запрос:
Результат:
toIntervalQuarter
Возвращает интервал продолжительностью n кварталов типа данных IntervalQuarter.
Синтаксис
Аргументы
n— количество кварталов. Целые числа или их строковые представления, а также числа с плавающей запятой. (U)Int*/Float*/String.
Возвращаемые значения
- Интервал длиной
nкварталов. IntervalQuarter.
Пример
Запрос:
Результат:
toIntervalMonth
Возвращает интервал длительностью n месяцев типа данных IntervalMonth.
Синтаксис
Аргументы
n— количество месяцев. Целые числа, их строковые представления, а также числа с плавающей запятой. (U)Int*/Float*/String.
Возвращаемые значения
- Интервал длиной в
nмесяцев. IntervalMonth.
Пример
Запрос:
Результат:
toIntervalWeek
Возвращает интервал продолжительностью n недель типа данных IntervalWeek.
Синтаксис
Аргументы
n— количество недель. Целые числа, их строковые представления или числа с плавающей запятой. (U)Int*/Float*/String.
Возвращаемые значения
- Интервал продолжительностью
nнедель. IntervalWeek.
Пример
Запрос:
Результат:
toIntervalDay
Возвращает интервал в n дней с типом данных IntervalDay.
Синтаксис
Аргументы
n— количество дней. Целые числа, их строковые представления и числа с плавающей запятой. (U)Int*/Float*/String.
Возвращаемые значения
- Интервал в
nдней. IntervalDay.
Пример
Запрос:
Результат:
toIntervalHour
Возвращает интервал продолжительностью n часов типа данных IntervalHour.
Синтаксис
Аргументы
n— количество часов. Целые числа или их строковые представления, а также числа с плавающей запятой. (U)Int*/Float*/String.
Возвращаемые значения
- Интервал длительностью
nчасов. IntervalHour.
Пример
Запрос:
Результат:
toIntervalMinute
Возвращает интервал в n минут типа данных IntervalMinute.
Синтаксис
Аргументы
n— количество минут. Целые числа, их строковые представления и числа с плавающей запятой. (U)Int*/Float*/String.
Возвращаемые значения
- Интервал в
nминут. IntervalMinute.
Пример
Запрос:
Результат:
toIntervalSecond
Возвращает интервал длительностью n секунд типа данных IntervalSecond.
Синтаксис
Аргументы
n— количество секунд. Целые числа, их строковые представления, а также числа с плавающей запятой. (U)Int*/Float*/String.
Возвращаемые значения
- Интервал продолжительностью
nсекунд. IntervalSecond.
Пример
Запрос:
Результат:
toIntervalMillisecond
Возвращает интервал продолжительностью n миллисекунд типа данных IntervalMillisecond.
Синтаксис
Аргументы
n— количество миллисекунд. Целые числа, их строковые представления и числа с плавающей точкой. (U)Int*/Float*/String.
Возвращаемые значения
- Интервал в
nмиллисекунд. IntervalMilliseconds.
Пример
Запрос:
Результат:
toIntervalMicrosecond
Возвращает интервал длительностью n микросекунд типа данных IntervalMicrosecond.
Синтаксис
Аргументы
n— количество микросекунд. Целые числа или их строковые представления, а также числа с плавающей запятой. (U)Int*/Float*/String.
Возвращаемые значения
- Интервал длиной
nмикросекунд. IntervalMicrosecond.
Пример
Запрос:
Результат:
toIntervalNanosecond
Возвращает интервал в n наносекунд типа данных IntervalNanosecond.
Синтаксис
Аргументы
n— количество наносекунд. Целые числа, их строковые представления и числа с плавающей запятой. (U)Int*/Float*/String.
Возвращаемые значения
- Интервал длительностью
nнаносекунд. IntervalNanosecond.
Пример
Запрос:
Результат:
parseDateTime
Преобразует String в DateTime в соответствии со строкой формата MySQL.
Эта функция является обратной к функции formatDateTime.
Синтаксис
Аргументы
str— Строка для парсинга.format— Строка формата. Необязательный параметр. По умолчанию%Y-%m-%d %H:%i:%s, если параметр не задан.timezone— Часовой пояс. Необязательный параметр.
Возвращаемое значение(я)
Возвращает значение типа DateTime, полученное из входной строки в соответствии со строкой формата в стиле MySQL.
Поддерживаемые спецификаторы формата
Все спецификаторы формата, перечисленные в formatDateTime, за исключением:
- %Q: Квартал (1–4)
Пример
Псевдоним: TO_TIMESTAMP.
parseDateTimeOrZero
Аналогично функции parseDateTime, за исключением того, что при встрече формата даты, который не может быть обработан, возвращает нулевую дату.
parseDateTimeOrNull
То же, что и parseDateTime, за исключением того, что при встрече неподдерживаемого формата даты функция возвращает NULL.
Псевдоним: str_to_date.
parseDateTimeInJodaSyntax
Аналогична функции parseDateTime, за исключением того, что строка формата задаётся в синтаксисе Joda, а не MySQL.
Эта функция выполняет операцию, противоположную функции formatDateTimeInJodaSyntax.
Синтаксис
Аргументы
str— Строка, которую нужно разобрать.format— Строка формата. Необязательный параметр. По умолчанию используетсяyyyy-MM-dd HH:mm:ss.timezone— Часовой пояс. Необязательный параметр.
Возвращаемое значение
Возвращает значение DateTime, полученное разбором входной строки в соответствии со строкой формата в стиле Joda.
Поддерживаемые спецификаторы формата
Поддерживаются все спецификаторы формата, перечисленные в formatDateTimeInJodaSyntax, за исключением:
- S: дробная часть секунды
- z: часовой пояс
- Z: смещение/идентификатор часового пояса
Пример
parseDateTimeInJodaSyntaxOrZero
То же, что и parseDateTimeInJodaSyntax, за исключением того, что при встрече с форматом даты, который не удаётся обработать, возвращает нулевую дату.
parseDateTimeInJodaSyntaxOrNull
Аналогично parseDateTimeInJodaSyntax, за исключением того, что при обнаружении неподдерживаемого формата даты возвращает NULL.
parseDateTime64
Преобразует String в тип DateTime64 в соответствии со строкой формата MySQL.
Синтаксис
Аргументы
str— Строка, которую нужно разобрать.format— Строка формата. Необязательный параметр. По умолчанию —%Y-%m-%d %H:%i:%s.%f.timezone— Часовой пояс. Необязательный параметр.
Возвращаемое значение
Возвращает значение типа DateTime64, разобранное из входной строки в соответствии со строкой формата в стиле MySQL. Точность возвращаемого значения равна 6.
parseDateTime64OrZero
То же, что и parseDateTime64, но при обнаружении неподдерживаемого формата даты возвращает нулевую дату.
parseDateTime64OrNull
То же, что и parseDateTime64, но возвращает NULL, если встречает формат даты, который не может быть обработан.
parseDateTime64InJodaSyntax
Преобразует String в DateTime64 в соответствии с форматной строкой Joda.
Синтаксис
Аргументы
str— Строка, которую нужно разобрать.format— Строка формата. Необязательный параметр. По умолчанию используетсяyyyy-MM-dd HH:mm:ss.timezone— Timezone. Необязательный параметр.
Возвращаемое значение
Возвращает значение типа DateTime64, полученное разбором входной строки в соответствии со строкой формата в стиле Joda.
Точность возвращаемого значения равна количеству символов S в строке формата (но не более 6).
parseDateTime64InJodaSyntaxOrZero
Работает так же, как parseDateTime64InJodaSyntax, за исключением того, что при обнаружении формата даты, который не может быть обработан, возвращает нулевую дату.
parseDateTime64InJodaSyntaxOrNull
То же, что и parseDateTime64InJodaSyntax, но возвращает NULL, если формат даты не может быть обработан.
parseDateTimeBestEffort
parseDateTime32BestEffort
Преобразует дату и время в строковом представлении типа String в тип данных DateTime.
Функция разбирает форматы ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, форматы ClickHouse и некоторые другие форматы даты и времени.
Синтаксис
Аргументы
time_string— строка, содержащая дату и время для преобразования. String.time_zone— часовой пояс. Функция разбирает (парсит)time_stringв соответствии с часовым поясом. String.
Поддерживаемые нестандартные форматы
- Строка, содержащая 9..10-значный unix timestamp.
- Строка с компонентами даты и времени:
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и т. д. - Строка с днём и временем:
DD,DD hh,DD hh:mm. В этом случае значениеMMподставляется как01. - Строка, включающая дату и время вместе с информацией о смещении часового пояса:
YYYY-MM-DD hh:mm:ss ±h:mmи т. д. Например,2020-12-12 17:36:00 -5:00. - syslog timestamp:
Mmm dd hh:mm:ss. Например,Jun 9 14:20:32.
Для всех форматов с разделителями функция разбирает названия месяцев, указанные полностью или первыми тремя буквами названия месяца. Примеры: 24/DEC/18, 24-Dec-18, 01-September-2018.
Если год не указан, считается, что он равен текущему году. Если получившееся значение типа DateTime оказывается в будущем (даже на секунду по сравнению с текущим моментом), то текущий год заменяется на предыдущий.
Возвращаемое значение
time_string, преобразованное к типу данных DateTime.
Примеры
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат:
Запрос:
Результат:
См. также
parseDateTimeBestEffortUS
Эта функция ведёт себя как parseDateTimeBestEffort для ISO-форматов даты, например YYYY-MM-DD hh:mm:ss, и других форматов даты, в которых компоненты месяца и дня могут быть однозначно извлечены, например YYYYMMDDhhmmss, YYYY-MM, DD hh или YYYY-MM-DD hh:mm:ss ±h:mm. Если компоненты месяца и дня не могут быть однозначно извлечены, например MM/DD/YYYY, MM-DD-YYYY или MM-DD-YY, по умолчанию используется американский формат даты вместо DD/MM/YYYY, DD-MM-YYYY или DD-MM-YY. В качестве исключения из последнего, если значение месяца больше 12 и не превышает 31, функция переходит к поведению parseDateTimeBestEffort, например 15/08/2020 интерпретируется как 2020-08-15.
parseDateTimeBestEffortOrNull
parseDateTime32BestEffortOrNull
Аналогично parseDateTimeBestEffort, за исключением того, что возвращает NULL, если встречает формат даты, который невозможно обработать.
parseDateTimeBestEffortOrZero
parseDateTime32BestEffortOrZero
То же, что и parseDateTimeBestEffort, за исключением того, что при встрече с форматом даты, который невозможно обработать, возвращается нулевая дата или нулевое значение даты-времени.
parseDateTimeBestEffortUSOrNull
То же, что и функция parseDateTimeBestEffortUS, за исключением того, что она возвращает NULL, если встречает формат даты, который нельзя обработать.
parseDateTimeBestEffortUSOrZero
То же, что и функция parseDateTimeBestEffortUS, за исключением того, что она возвращает нулевую дату (1970-01-01) или нулевую дату со временем (1970-01-01 00:00:00), если встречается формат даты, который не удаётся обработать.
parseDateTime64BestEffort
То же, что и функция parseDateTimeBestEffort, но дополнительно обрабатывает миллисекунды и микросекунды и возвращает тип данных DateTime.
Синтаксис
Аргументы
time_string— Строка с датой или датой и временем для преобразования. String.precision— Требуемая точность.3— для миллисекунд,6— для микросекунд. Значение по умолчанию —3. Необязательный параметр. UInt8.time_zone— Timezone. Функция парситtime_stringв соответствии с этим часовым поясом. Необязательный параметр. String.
Возвращаемое значение
time_string, преобразованная к типу данных DateTime.
Примеры
Запрос:
Результат:
parseDateTime64BestEffortUS
Аналогична функции parseDateTime64BestEffort, за исключением того, что при неоднозначности она отдаёт предпочтение американскому формату даты (MM/DD/YYYY и т.д.).
parseDateTime64BestEffortOrNull
Работает так же, как parseDateTime64BestEffort, но возвращает NULL, если встречает формат даты, который не может быть обработан.
parseDateTime64BestEffortOrZero
То же, что и parseDateTime64BestEffort, за исключением того, что при встрече с форматом даты, который не удаётся обработать, возвращает нулевую дату или нулевое значение даты и времени.
parseDateTime64BestEffortUSOrNull
Аналогична функции parseDateTime64BestEffort, за исключением того, что при неоднозначности эта функция отдаёт предпочтение формату даты, принятому в США (MM/DD/YYYY и т. д.), и возвращает NULL, если встречает формат даты, который не может быть обработан.
parseDateTime64BestEffortUSOrZero
То же, что и parseDateTime64BestEffort, за исключением того, что при неоднозначной интерпретации эта функция предпочитает американский формат даты (MM/DD/YYYY и т. д.) и возвращает нулевую дату или нулевое значение дата-время, если встречает формат даты, который невозможно обработать.
toLowCardinality
Преобразует входной параметр в вариант типа данных LowCardinality на основе исходного типа.
Для преобразования данных из типа LowCardinality используйте функцию CAST. Например, CAST(x as String).
Синтаксис
Аргументы
expr— выражение, дающее один из поддерживаемых типов данных.
Возвращаемые значения
- Результат
expr. Тип LowCardinality от типаexpr.
Пример
Запрос:
Результат:
toUnixTimestamp
Преобразует String, Date или DateTime в Unix-метку времени (количество секунд с 1970-01-01 00:00:00 UTC) типа UInt32.
Синтаксис
Аргументы
date: Значение для преобразования.DateилиDate32илиDateTimeилиDateTime64илиString.timezone: Необязательный параметр. Часовой пояс, используемый для преобразования. Если не указан, используется часовой пояс сервера.String
Возвращаемое значение
Возвращает Unix‑временную метку. UInt32
Примеры
Пример использования
toUnixTimestamp64Second
Преобразует DateTime64 в значение типа Int64 с фиксированной точностью до секунды. Входное значение масштабируется вверх или вниз в зависимости от его точности.
Результирующее значение — это метка времени в UTC, а не в часовом поясе, заданном в DateTime64.
Синтаксис
Аргументы
value— значение типа DateTime64 с любой точностью. DateTime64.
Возвращаемое значение
value, преобразованное к типу данныхInt64. Int64.
Пример
Запрос:
Результат:
toUnixTimestamp64Milli
Преобразует DateTime64 в значение типа Int64 с фиксированной точностью до миллисекунд. Входное значение при необходимости увеличивается или уменьшается в зависимости от его исходной точности.
Результирующее значение представляет собой метку времени в формате UTC, а не в часовом поясе DateTime64.
Синтаксис
Аргументы
value— значение типа DateTime64 с любой точностью. DateTime64.
Возвращаемое значение
value, приведённое к типу данныхInt64. Int64.
Пример
Запрос:
Результат:
toUnixTimestamp64Micro
Преобразует DateTime64 в значение типа Int64 с фиксированной микросекундной точностью. Входное значение соответствующим образом масштабируется (увеличивается или уменьшается) в зависимости от его точности.
Результирующее значение представляет собой метку времени в UTC, а не в часовом поясе DateTime64.
Синтаксис
Аргументы
value— значение типа DateTime64 с любой точностью. DateTime64.
Возвращаемое значение
value, преобразованное в тип данныхInt64. Int64.
Пример
Запрос:
Результат:
toUnixTimestamp64Nano
Преобразует DateTime64 в значение типа Int64 с фиксированной наносекундной точностью. Входное значение масштабируется вверх или вниз в зависимости от его точности.
Результирующее значение является меткой времени в UTC, а не в часовом поясе DateTime64.
Синтаксис
Аргументы
value— значение типа DateTime64 с любой точностью. DateTime64.
Возвращаемое значение
value, преобразованное к типу данныхInt64. Int64.
Пример
Запрос:
Результат:
fromUnixTimestamp64Second
Преобразует значение типа Int64 в DateTime64 с фиксированной точностью до секунд и необязательным указанием часового пояса. Входное значение масштабируется (увеличивается или уменьшается) в зависимости от его точности.
Обратите внимание, что входное значение интерпретируется как временная метка в UTC, а не как временная метка в заданном (или неявно заданном) часовом поясе.
Синтаксис
Аргументы
value— значение с любой точностью. Int64.timezone— (необязательно) имя часового пояса для результата. String.
Возвращаемое значение
value, преобразованное в DateTime64 с точностью0. DateTime64.
Пример
Запрос:
Результат:
fromUnixTimestamp64Milli
Преобразует значение типа Int64 в значение типа DateTime64 с фиксированной точностью до миллисекунд и необязательным указанием часового пояса. Входное значение соответствующим образом масштабируется вверх или вниз в зависимости от его точности.
Обратите внимание, что входное значение интерпретируется как метка времени в UTC, а не как метка времени в заданном (или неявном) часовом поясе.
Синтаксис
Аргументы
value— значение произвольной точности. Int64.timezone— (необязательный) параметр, задающий имя часового пояса для результата. String.
Возвращаемое значение
value, преобразованное в DateTime64 с точностью3. DateTime64.
Пример
Запрос:
Результат:
fromUnixTimestamp64Micro
Преобразует значение типа Int64 в DateTime64 с фиксированной микросекундной точностью и необязательным часовым поясом. Входное значение масштабируется в большую или меньшую сторону в зависимости от его точности.
Обратите внимание, что входное значение интерпретируется как метка времени в UTC, а не как метка времени в заданном (или неявном) часовом поясе.
Синтаксис
Аргументы
value— значение произвольной точности. Int64.timezone— (необязательно) имя часового пояса результата. String.
Возвращаемое значение
value, преобразованное в DateTime64 с точностью6. DateTime64.
Пример
Запрос:
Результат:
fromUnixTimestamp64Nano
Преобразует значение типа Int64 в DateTime64 с фиксированной точностью до наносекунд и необязательным указанием часового пояса. Входное значение масштабируется (увеличивается или уменьшается) в зависимости от его исходной точности.
Обратите внимание, что входное значение интерпретируется как метка времени в UTC, а не как метка времени в указанном (или неявном) часовом поясе.
Синтаксис
Аргументы
value— значение с любой точностью. Int64.timezone— (необязательное) имя часового пояса результата. String.
Возвращаемое значение
value, преобразованное в DateTime64 с точностью9. DateTime64.
Пример
Запрос:
Результат:
formatRow
Преобразует произвольные выражения в строку по указанному формату.
Синтаксис
Аргументы
format— текстовый формат. Например, CSV, TabSeparated (TSV).x,y, ... — выражения.
Возвращаемое значение
- Отформатированная строка. (Для текстовых форматов она обычно заканчивается символом новой строки.)
Пример
Запрос:
Результат:
Примечание: Если формат содержит суффикс или префикс, он будет записан в каждой строке.
Пример
Запрос:
Результат:
Примечание: в этой функции поддерживаются только строчно-ориентированные форматы.
formatRowNoNewline
Преобразует произвольные выражения в строку через заданный формат. Отличается от formatRow тем, что эта функция удаляет последний символ \n, если он есть.
Синтаксис
Аргументы
format— текстовый формат. Например, CSV, TabSeparated (TSV).x,y, ... — выражения.
Возвращаемое значение
- Отформатированная строка.
Пример
Запрос:
Результат: