Функции преобразования типов
Общие проблемы с преобразованием данных
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
— выражение, возвращающее число или строку. Expression.
Поддерживаемые аргументы:
- Значения типов (U)Int8/16/32/64/128/256.
- Значения типов Float32/64.
- Строки
true
илиfalse
(независимо от регистра).
Возвращаемое значение
- Возвращает
true
илиfalse
на основе оценки аргумента. Bool.
Пример
Запрос:
Результат:
toInt8
Преобразует входное значение в значение типа Int8
. Генерирует исключение в случае ошибки.
Синтаксис
Аргументы
expr
— выражение, возвращающее число или строковое представление числа. Expression.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64, включая
NaN
иInf
. - Строковые представления двоичных и шестнадцатеричных значений, например:
SELECT toInt8('0xc0fe');
.
Если входное значение не может быть представлено в пределах Int8, возникает переполнение или недополнение результата. Это не считается ошибкой. Например: 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-битное целое число, если успешно, иначе
0
. Int8.
Функция использует округление по направлению к нулю, что означает, что она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
См. также
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, возникает переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление по направлению к нулю, что означает, что она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
См. также
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
— выражение, возвращающее число или строковое представление числа. Expression.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64, включая
NaN
иInf
. - Строковые представления двоичных и шестнадцатеричных значений, например:
SELECT toInt32('0xc0fe');
.
Если входное значение не может быть представлено в пределах Int32, результат переполняется или недополняется. Это не считается ошибкой. Например: 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, возникает переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
- 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, результат переполняется или недополняется. Это не считается ошибкой. Например: 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, возникает переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
- 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, возникает переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление по направлению к нулю, что означает, что она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
См. также
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
— выражение, возвращающее число или строковое представление числа. Expression.
Поддерживаемые аргументы:
- Значения или строковые представления типов (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, возникает переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
- 128-битное целое число, если успешно, иначе
0
. Int128.
Функция использует округление по направлению к нулю, что означает, что она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
См. также
toInt128OrNull
Как toInt128
, эта функция преобразует входное значение в значение типа Int128, но возвращает NULL
в случае ошибки.
Синтаксис
Аргументы
x
— строковое представление числа. Expression / String.
Поддерживаемые аргументы:
- Строковые представления (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
— Выражение, возвращающее число или строковое представление числа. Expression.
Поддерживаемые аргументы:
- Значения или строковые представления типов (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, происходит переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, то есть она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
Смотрите также
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
— Выражение, возвращающее число или строковое представление числа. Expression.
Поддерживаемые аргументы:
- Значения или строковые представления типов (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, происходит переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
- 8-битовое беззнаковое целое значение, если успешно, иначе
0
. UInt8.
Функция использует округление к нулю, то есть она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
Смотрите также
toUInt8OrNull
Как и toUInt8
, эта функция преобразует входное значение в значение типа UInt8, но возвращает NULL
в случае ошибки.
Синтаксис
Аргументы
x
— Строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают \N
)
- Строковые представления значений Float32/64, включая
NaN
иInf
. - Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toUInt8OrNull('0xc0fe');
.
Если входное значение не может быть представлено в пределах UInt8, происходит переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, то есть она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
Смотрите также
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, происходит переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
- 8-битовое беззнаковое целое значение, если успешно, иначе возвращает значение по умолчанию, если оно было передано, или
0
, если не было. UInt8.
- Функция использует округление к нулю, то есть она обрезает дробные цифры чисел.
- Тип значения по умолчанию должен соответствовать типу приведения.
Пример
Запрос:
Результат:
Смотрите также
toUInt16
Преобразует входное значение в значение типа UInt16
. Генерирует исключение в случае ошибки.
Синтаксис
Аргументы
expr
— Выражение, возвращающее число или строковое представление числа. Expression.
Поддерживаемые аргументы:
- Значения или строковые представления типов (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
— Выражение, возвращающее число или строковое представление числа. Expression.
Поддерживаемые аргументы:
- Значения или строковые представления типов (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, происходит переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, то есть она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
Смотрите также
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
— Выражение, возвращающее число или строковое представление числа. Expression.
Поддерживаемые аргументы:
- Значения или строковые представления типов (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, происходит переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
- 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
— Выражение, возвращающее число или строковое представление числа. Выражение / Строка.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
в случае ошибки.
Синтаксис
Аргументы
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают 0
):
- Строковые представления значений Float32/64, включая
NaN
иInf
. - Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toUInt128OrZero('0xc0fe');
.
Если входное значение не может быть представлено в пределах UInt128, происходит переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
- 128-битное беззнаковое целое значение, если успешно, в противном случае
0
. UInt128.
Функция использует округление к нулю, что означает, что она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
Смотрите также
toUInt128OrNull
Как и toUInt128
, эта функция преобразует входное значение в значение типа UInt128, но возвращает NULL
в случае ошибки.
Синтаксис
Аргументы
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают \N
)
- Строковые представления значений Float32/64, включая
NaN
иInf
. - Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toUInt128OrNull('0xc0fe');
.
Если входное значение не может быть представлено в пределах UInt128, происходит переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, что означает, что она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
Смотрите также
toUInt128OrDefault
Как и toUInt128
, эта функция преобразует входное значение в значение типа UInt128, но возвращает значение по умолчанию в случае ошибки.
Если значение default
не передано, то в случае ошибки возвращается 0
.
Синтаксис
Аргументы
expr
— Выражение, возвращающее число или строковое представление числа. Выражение / Строка.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
— Выражение, возвращающее число или строковое представление числа. Выражение.
Поддерживаемые аргументы:
- Значения или строковые представления типов (U)Int8/16/32/64/128/256.
- Значения типов Float32/64.
Неподдерживаемые аргументы:
- Строковые представления значений Float32/64, включая
NaN
иInf
. - Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toUInt256('0xc0fe');
.
Если входное значение не может быть представлено в пределах UInt256, результат переполняется или недополняется. Это не считается ошибкой.
Возвращаемое значение
- 256-битное беззнаковое целое значение. Int256.
Функция использует округление к нулю, что означает, что она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
Смотрите также
toUInt256OrZero
Как и toUInt256
, эта функция преобразует входное значение в значение типа UInt256, но возвращает 0
в случае ошибки.
Синтаксис
Аргументы
x
— Строковое представление числа. Строка.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают 0
):
- Строковые представления значений Float32/64, включая
NaN
иInf
. - Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toUInt256OrZero('0xc0fe');
.
Если входное значение не может быть представлено в пределах UInt256, происходит переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
- 256-битное беззнаковое целое значение, если успешно, иначе
0
. UInt256.
Функция использует округление к нулю, что означает, что она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
Смотрите также
toUInt256OrNull
Как и toUInt256
, эта функция преобразует входное значение в значение типа UInt256, но возвращает NULL
в случае ошибки.
Синтаксис
Аргументы
x
— Строковое представление числа. Строка.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают \N
)
- Строковые представления значений Float32/64, включая
NaN
иInf
. - Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toUInt256OrNull('0xc0fe');
.
Если входное значение не может быть представлено в пределах UInt256, происходит переполнение или недополнение результата. Это не считается ошибкой.
Возвращаемое значение
Функция использует округление к нулю, что означает, что она обрезает дробные цифры чисел.
Пример
Запрос:
Результат:
Смотрите также
toUInt256OrDefault
Как и toUInt256
, эта функция преобразует входное значение в значение типа UInt256, но возвращает значение по умолчанию в случае ошибки.
Если значение default
не передано, то в случае ошибки возвращается 0
.
Синтаксис
Аргументы
expr
— Выражение, возвращающее число или строковое представление числа. Выражение / Строка.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
— Строковое представление числа. Строка.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256, Float32/64.
Неподдерживаемые аргументы (возвращают 0
):
- Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toFloat32OrZero('0xc0fe');
.
Возвращаемое значение
- 32-битное значение с плавающей точкой, если успешно, иначе
0
. Float32.
Пример
Запрос:
Результат:
Смотрите также
toFloat32OrNull
Как и toFloat32
, эта функция преобразует входное значение в значение типа Float32, но возвращает NULL
в случае ошибки.
Синтаксис
Аргументы
x
— Строковое представление числа. Строка.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256, Float32/64.
Неподдерживаемые аргументы (возвращают \N
):
- Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toFloat32OrNull('0xc0fe');
.
Возвращаемое значение
- 32-битное значение с плавающей точкой, если успешно, иначе
\N
. Float32.
Пример
Запрос:
Результат:
Смотрите также
toFloat32OrDefault
Как и toFloat32
, эта функция преобразует входное значение в значение типа Float32, но возвращает значение по умолчанию в случае ошибки.
Если значение default
не передано, то в случае ошибки возвращается 0
.
Синтаксис
Аргументы
expr
— Выражение, возвращающее число или строковое представление числа. Выражение / Строка.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
— Строковое представление числа. Строка.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256, Float32/64.
Неподдерживаемые аргументы (возвращают 0
):
- Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toFloat64OrZero('0xc0fe');
.
Возвращаемое значение
- 64-битное значение с плавающей точкой, если успешно, иначе
0
. Float64.
Пример
Запрос:
Результат:
Смотрите также
toFloat64OrNull
Как и toFloat64
, эта функция преобразует входное значение в значение типа Float64, но возвращает NULL
в случае ошибки.
Синтаксис
Аргументы
x
— Строковое представление числа. Строка.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256, Float32/64.
Неподдерживаемые аргументы (возвращают \N
):
- Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toFloat64OrNull('0xc0fe');
.
Возвращаемое значение
- 64-битное значение с плавающей точкой, если успешно, иначе
\N
. Float64.
Пример
Запрос:
Результат:
Смотрите также
toFloat64OrDefault
Как и toFloat64
, эта функция преобразует входное значение в значение типа Float64, но возвращает значение по умолчанию в случае ошибки.
Если значение default
не передано, то в случае ошибки возвращается 0
.
Синтаксис
Аргументы
expr
— Выражение, возвращающее число или строковое представление числа. Выражение / Строка.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-битное значение с плавающей точкой, если успешно, иначе возвращает значение по умолчанию, если оно было передано, или
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
— Строковое представление числа. Строка.
Поддерживаемые аргументы:
- Строковые представления числовых значений.
Неподдерживаемые аргументы (возвращают 0
):
- Строковые представления двоичных и шестнадцатеричных значений.
- Числовые значения.
Возвращаемое значение
- 16-битное значение brain-float, иначе
0
. BFloat16.
Функция допускает бесшумную потерю точности при преобразовании из строкового представления.
Пример
Смотрите также
toBFloat16OrNull
Преобразует строковое входное значение в значение типа BFloat16
но если строка не представляет собой значение с плавающей точкой, функция возвращает NULL
.
Синтаксис
Аргументы
x
— Строковое представление числа. Строка.
Поддерживаемые аргументы:
- Строковые представления числовых значений.
Неподдерживаемые аргументы (возвращают NULL
):
- Строковые представления двоичных и шестнадцатеричных значений.
- Числовые значения.
Возвращаемое значение
- 16-битное значение brain-float, иначе
NULL
(\N
). BFloat16.
Функция допускает бесшумную потерю точности при преобразовании из строкового представления.
Пример
Смотрите также
toDate
Преобразует аргумент в тип данных Date.
Если аргумент является DateTime или DateTime64, он усечен и сохраняется только компонент даты из DateTime:
Если аргумент является Строкой, он разбирается как Date или DateTime. Если он был разобран как DateTime, используется компонент даты:
Если аргумент является числом и выглядит как метка времени UNIX (больше 65535), он интерпретируется как DateTime, а затем усечен до Date в текущем часовом поясе. Аргумент часовых поясов может быть указан в качестве второго аргумента функции. Усечение до Date зависит от часового пояса:
Приведенный выше пример демонстрирует, как одна и та же метка времени UNIX может интерпретироваться как разные даты в разных часовых поясах.
Если аргумент является числом и меньше 65536, он интерпретируется как количество дней с 1970-01-01 (первый UNIX день) и преобразуется в Date. Это соответствует внутреннему числовому представлению типа Date
. Пример:
Это преобразование не зависит от часовых поясов.
Если аргумент не помещается в диапазон типа Date, это приводит к неопределенному поведению реализации, которое может насыщаться до максимальной поддерживаемой даты или переполняться:
Функция toDate
также может быть записана в альтернативных формах:
toDateOrZero
То же самое, что и toDate, но возвращает нижнюю границу Date, если получен недопустимый аргумент. Поддерживается только аргумент Строка.
Пример
Запрос:
Результат:
toDateOrNull
То же самое, что и toDate, но возвращает NULL
, если получен недопустимый аргумент. Поддерживается только аргумент Строка.
Пример
Запрос:
Результат:
toDateOrDefault
Как и toDate, но если не удается, возвращает значение по умолчанию, которое либо является вторым аргументом (если указан), либо иначе нижней границей Date.
Синтаксис
Пример
Запрос:
Результат:
toDateTime
Преобразует входное значение в DateTime.
Синтаксис
Аргументы
Если expr
является числом, оно интерпретируется как количество секунд с начала эпохи Unix (как метка времени Unix).
Если expr
является Строкой, он может быть интерпретирован как метка времени Unix или как строковое представление даты / даты с временем.
Таким образом, разбор строковых представлений коротких чисел (до 4 цифр) явно отключен из-за двусмысленности, например, строка '1999'
может быть как годом (неполное строковое представление даты / даты и времени), так и временной меткой Unix. Более длинные числовые строки разрешены.
Возвращаемое значение
- Дата и время. DateTime
Пример
Запрос:
Результат:
toDateTimeOrZero
То же самое, что и toDateTime, но возвращает нижнюю границу DateTime, если получен недопустимый аргумент. Поддерживается только аргумент Строка.
Пример
Запрос:
Результат:
toDateTimeOrNull
То же самое, что и toDateTime, но возвращает NULL
, если получен недопустимый аргумент. Поддерживается только аргумент Строка.
Пример
Запрос:
Результат:
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
— Выражение, возвращающее число или строковое представление числа. Expression.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.
Вы можете использовать строковый ввод, чтобы операции использовали основной целочисленный тип: 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
— Выражение, возвращающее число или строковое представление числа. Expression.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.
Вы можете использовать строковый ввод, чтобы операции использовали основной целочисленный тип: 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 функция может принимать второй строковый аргумент, содержащий название временной зоны.
Синтаксис
Аргументы
value
: Значение для преобразования в строку.Any
.timezone
: Необязательно. Название временной зоны для преобразованияDateTime
.String
.
Возвращаемое значение
- Возвращает строковое представление входного значения.
String
.
Примеры
Пример использования
toFixedString
Преобразует аргумент типа String в тип FixedString(N) (строка фиксированной длины N). Если строка имеет меньше байт, чем N, она дополнена нулевыми байтами справа. Если строка имеет больше байт, чем N, будет выброшено исключение.
Синтаксис
Аргументы
Возвращаемое значение
- Строка фиксированной длины N из
s
. FixedString.
Пример
Запрос:
Результат:
toStringCutToZero
Принимает аргумент String или FixedString. Возвращает строку с содержимым, обрезанным на первом нулевом байте.
Синтаксис
Пример
Запрос:
Результат:
Запрос:
Результат:
toDecimalString
Преобразует числовое значение в строку с количеством дробных знаков в выходе, указанным пользователем.
Синтаксис
Аргументы
number
— значение, которое должно быть представлено в виде строки, Int, UInt, Float, Decimal,scale
— количество дробных знаков, UInt8.
Возвращаемое значение
- Входное значение, представленное как String с заданным количеством дробных знаков (масштаба). Число округляется вверх или вниз согласно общим арифметическим правилам в случае, если запрашиваемый масштаб меньше масштаба исходного числа.
Пример
Запрос:
Результат:
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
Принимает строку, фиксированную строку или числовое значение и интерпретирует байты как число в порядке хоста (младший бит первым). Возвращает дату, интерпретированную из числа, как количество дней с начала эпохи Unix.
Синтаксис
Параметры
x
: количество дней с начала эпохи Unix. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Дата. Date.
Детали реализации
Если переданная строка недостаточной длины, функция работает так, будто строка дополнена необходимым количеством нулевых байтов. Если строка длиннее, чем необходимо, лишние байты игнорируются.
Пример
Запрос:
Результат:
reinterpretAsDateTime
Эти функции принимают строку и интерпретируют байты, размещенные в начале строки, как число в порядке хоста (младший бит первым). Возвращает дату с временем, интерпретированным как количество секунд с начала эпохи Unix.
Синтаксис
Параметры
x
: количество секунд с начала эпохи Unix. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Дата и время. DateTime.
Детали реализации
Если переданная строка недостаточной длины, функция работает так, будто строка дополнена необходимым количеством нулевых байтов. Если строка длиннее, чем необходимо, лишние байты игнорируются.
Пример
Запрос:
Результат:
reinterpretAsString
Эта функция принимает число, дату или дату с временем и возвращает строку, содержащую байты, представляющие соответствующее значение в порядке хоста (младший бит первым). Нулевые байты отбрасываются с конца. Например, значение типа UInt32, равное 255, является строкой длиной один байт.
Синтаксис
Параметры
Возвращаемое значение
- Строка, содержащая байты, представляющие
x
. String.
Пример
Запрос:
Результат:
reinterpretAsFixedString
Эта функция принимает число, дату или дату с временем и возвращает FixedString, содержащую байты, представляющие соответствующее значение в порядке хоста (младший бит первым). Нулевые байты отбрасываются с конца. Например, значение типа 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 из числового значения и единицы интервала (например, 'секунда' или 'день').
Синтаксис
Аргументы
-
value
— длина интервала. Целые числа или строковые представления, а также дробные числа. (U)Int*/Float*/String. -
unit
— тип создаваемого интервала. Строковый литерал. Возможные значения:наносекунда
микросекунда
миллисекунда
секунда
минута
час
день
неделя
месяц
квартал
год
Аргумент
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
— Часовой пояс. Необязательно.
Возвращаемое значение(я)
Возвращает значение DateTime64, разобранное из входной строки в соответствии со строкой формата в стиле Joda.
Точность возвращаемого значения равна количеству заполнителей S
в строке формата (но не более 6).
parseDateTime64InJodaSyntaxOrZero
То же самое, что и для parseDateTime64InJodaSyntax, за исключением того, что он возвращает дату ноль, когда встречает формат даты, который не может быть обработан.
parseDateTime64InJodaSyntaxOrNull
То же самое, что и для parseDateTime64InJodaSyntax, за исключением того, что он возвращает NULL
, когда встречает формат даты, который не может быть обработан.
parseDateTimeBestEffort
parseDateTime32BestEffort
Преобразует дату и время в представлении String в тип данных DateTime.
Функция разбирает ISO 8601, RFC 1123 - 5.2.14 RFC-822 Указания по дате и времени, форматы даты и времени ClickHouse и некоторые другие.
Синтаксис
Аргументы
time_string
— Строка, содержащая дату и время для преобразования. String.time_zone
— Часовой пояс. Функция разбираетtime_string
в соответствии с часовым поясом. String.
Поддерживаемые нестандартные форматы
- Строка, содержащая временную метку unix в 9..10 цифр.
- Строка с компонентами даты и времени:
YYYYMMDDhhmmss
,DD/MM/YYYY hh:mm:ss
,DD-MM-YY hh:mm
,YYYY-MM-DD hh:mm:ss
и т.д. - Строка с датой, но без компонента времени:
YYYY
,YYYYMM
,YYYY*MM
,DD/MM/YYYY
,DD-MM-YY
и т.д. - Строка с днем и временем:
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:
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
— Часовой пояс. Функция разбирает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
Преобразует произвольные выражения в строку через данный формат.
Синтаксис
Аргументы
Возвращаемое значение
- Форматированная строка. (для текстовых форматов она обычно завершается символом новой строки).
Пример
Запрос:
Результат:
Примечание: Если формат содержит суффикс/префикс, он будет записан в каждой строке.
Пример
Запрос:
Результат:
Примечание: Поддерживаются только форматы на основе строк в этой функции.
formatRowNoNewline
Преобразует произвольные выражения в строку через данный формат. Отличается от formatRow тем, что эта функция обрезает последний \n
, если он есть.
Синтаксис
Аргументы
Возвращаемое значение
- Форматированная строка.
Пример
Запрос:
Результат: