Перейти к основному содержимому
Перейти к основному содержимому

Функции преобразования типов

Общие проблемы с преобразованием данных

ClickHouse обычно использует такое же поведение, как программы на C++.

Функции to<type> и cast ведут себя по-разному в некоторых случаях, например, в случае LowCardinality: cast удаляет признак LowCardinality, а функции to<type> – нет. То же самое касается Nullable, такое поведение не совместимо со стандартом SQL и может быть изменено с помощью параметра cast_keep_nullable.

примечание

Имейте в виду потенциальную потерю данных, если значения типа данных преобразуются в меньший тип данных (например, из Int64 в Int32) или между несовместимыми типами данных (например, из String в Int). Убедитесь, что результат соответствует ожидаемому.

Пример:

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, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 8-битное целочисленное значение в случае успеха, в противном случае NULL. Int8 / NULL.
примечание

Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.

Пример

Запрос:

Результат:

Смотрите также

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, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 16-битное целочисленное значение в случае успеха, в противном случае NULL. Int16 / NULL.
примечание

Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.

Пример

Запрос:

Результат:

Смотрите также

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, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 32-битное целочисленное значение в случае успеха, в противном случае NULL. Int32 / NULL.
примечание

Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.

Пример

Запрос:

Результат:

Смотрите также

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, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 64-битное целочисленное значение в случае успеха, в противном случае NULL. Int64 / NULL.
примечание

Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.

Пример

Запрос:

Результат:

Смотрите также

toInt64OrDefault

Как toInt64, эта функция преобразует входное значение в значение типа Int64, но возвращает значение по умолчанию в случае ошибки. Если значение default не передано, то в случае ошибки возвращается 0.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Expression / String.
  • default (необязательный) — Значение по умолчанию, которое будет возвращено, если преобразование в тип Int64 не удалось. Int64.

Поддерживаемые аргументы:

  • Значения или строковые представления типа (U)Int8/16/32/64/128/256.
  • Значения типа Float32/64.

Аргументы, для которых возвращается значение по умолчанию:

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toInt64OrDefault('0xc0fe', CAST('-1', 'Int64'));.
примечание

Если входное значение не может быть представлено в пределах границ Int64, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 64-битное целочисленное значение в случае успеха, в противном случае возвращает значение по умолчанию, если оно было передано, или 0, если нет. Int64.
примечание
  • Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.
  • Тип значения по умолчанию должен соответствовать типу приведения.

Пример

Запрос:

Результат:

Смотрите также

toInt128

Преобразует входное значение в значение типа Int128. Выдает исключение в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Выражение.

Поддерживаемые аргументы:

  • Значения или строковые представления типа (U)Int8/16/32/64/128/256.
  • Значения типа Float32/64.

Недопустимые аргументы:

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toInt128('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах Int128, результат переполняется или недополняется. Это не считается ошибкой.

Возвращаемое значение

  • 128-битное целое число. Int128.
примечание

Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toInt128OrZero

Подобно toInt128, эта функция преобразует входное значение в значение типа Int128, но возвращает 0 в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Выражение / Строка.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256.

Недопустимые аргументы (возвращают 0):

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toInt128OrZero('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах Int128, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 128-битное целое число, если успешно, в противном случае 0. Int128.
примечание

Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toInt128OrNull

Подобно toInt128, эта функция преобразует входное значение в значение типа Int128, но возвращает NULL в случае ошибки.

Синтаксис

Аргументы

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256.

Недопустимые аргументы (возвращают \N)

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toInt128OrNull('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах Int128, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 128-битное целое число, если успешно, в противном случае NULL. Int128 / NULL.
примечание

Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toInt128OrDefault

Подобно toInt128, эта функция преобразует входное значение в значение типа Int128, но возвращает значение по умолчанию в случае ошибки. Если значение default не передано, то в случае ошибки возвращается 0.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Выражение / Строка.
  • default (необязательный) — Значение по умолчанию, которое следует вернуть, если анализ в тип Int128 не удался. Int128.

Поддерживаемые аргументы:

  • (U)Int8/16/32/64/128/256.
  • Float32/64.
  • Строковые представления (U)Int8/16/32/128/256.

Аргументы, для которых возвращается значение по умолчанию:

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toInt128OrDefault('0xc0fe', CAST('-1', 'Int128'));.
примечание

Если входное значение не может быть представлено в пределах Int128, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 128-битное целое число, если успешно, в противном случае возвращает значение по умолчанию, если оно передано, или 0, если нет. Int128.
примечание
  • Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.
  • Тип значения по умолчанию должен соответствовать типу приведения.

Пример

Запрос:

Результат:

См. также

toInt256

Преобразует входное значение в значение типа Int256. Выдает исключение в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Выражение.

Поддерживаемые аргументы:

  • Значения или строковые представления типа (U)Int8/16/32/64/128/256.
  • Значения типа Float32/64.

Недопустимые аргументы:

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toInt256('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах Int256, результат переполняется или недополняется. Это не считается ошибкой.

Возвращаемое значение

  • 256-битное целое число. Int256.
примечание

Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toInt256OrZero

Подобно toInt256, эта функция преобразует входное значение в значение типа Int256, но возвращает 0 в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. Строка.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256.

Недопустимые аргументы (возвращают 0):

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toInt256OrZero('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах Int256, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 256-битное целое число, если успешно, в противном случае 0. Int256.
примечание

Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toInt256OrNull

Подобно toInt256, эта функция преобразует входное значение в значение типа Int256, но возвращает NULL в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. Строка.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256.

Недопустимые аргументы (возвращают \N)

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toInt256OrNull('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах Int256, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 256-битное целое число, если успешно, в противном случае NULL. Int256 / NULL.
примечание

Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toInt256OrDefault

Подобно toInt256, эта функция преобразует входное значение в значение типа Int256, но возвращает значение по умолчанию в случае ошибки. Если значение default не передано, то в случае ошибки возвращается 0.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Выражение / Строка.
  • default (необязательный) — Значение по умолчанию, которое следует вернуть, если анализ в тип Int256 не удался. Int256.

Поддерживаемые аргументы:

  • Значения или строковые представления типа (U)Int8/16/32/64/128/256.
  • Значения типа Float32/64.

Аргументы, для которых возвращается значение по умолчанию:

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toInt256OrDefault('0xc0fe', CAST('-1', 'Int256'));.
примечание

Если входное значение не может быть представлено в пределах Int256, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 256-битное целое число, если успешно, в противном случае возвращает значение по умолчанию, если оно передано, или 0, если нет. Int256.
примечание
  • Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.
  • Тип значения по умолчанию должен соответствовать типу приведения.

Пример

Запрос:

Результат:

См. также

toUInt8

Преобразует входное значение в значение типа UInt8. Выдает исключение в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Выражение.

Поддерживаемые аргументы:

  • Значения или строковые представления типа (U)Int8/16/32/64/128/256.
  • Значения типа Float32/64.

Недопустимые аргументы:

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt8('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах UInt8, происходит переполнение или недополнение результата. Это не считается ошибкой. Например: SELECT toUInt8(256) == 0;.

Возвращаемое значение

  • 8-битное беззнаковое целое число. UInt8.
примечание

Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt8OrZero

Подобно toUInt8, эта функция преобразует входное значение в значение типа UInt8, но возвращает 0 в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. Строка.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256.

Недопустимые аргументы (возвращают 0):

  • Строковые представления обычных значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt8OrZero('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах UInt8, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 8-битное беззнаковое целое число, если успешно, в противном случае 0. UInt8.
примечание

Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt8OrNull

Подобно toUInt8, эта функция преобразует входное значение в значение типа UInt8, но возвращает NULL в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. Строка.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256.

Недопустимые аргументы (возвращают \N)

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt8OrNull('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах UInt8, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 8-битное беззнаковое целое число, если успешно, в противном случае NULL. UInt8 / NULL.
примечание

Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt8OrDefault

Подобно toUInt8, эта функция преобразует входное значение в значение типа UInt8, но возвращает значение по умолчанию в случае ошибки. Если значение default не передано, то в случае ошибки возвращается 0.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Выражение / Строка.
  • 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 — Выражение, возвращающее число или строковое представление числа. Выражение.

Поддерживаемые аргументы:

  • Значения или строковые представления типа (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 — Строковое представление числа. Строка.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256.

Недопустимые аргументы (возвращают 0):

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt16OrZero('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах UInt16, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 16-битное беззнаковое целое число, если успешно, в противном случае 0. UInt16.
примечание

Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt16OrNull

Подобно toUInt16, эта функция преобразует входное значение в значение типа UInt16, но возвращает NULL в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. Строка.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256.

Недопустимые аргументы (возвращают \N)

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt16OrNull('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах UInt16, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 16-битное беззнаковое целое число, если успешно, в противном случае NULL. UInt16 / NULL.
примечание

Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt16OrDefault

Подобно toUInt16, эта функция преобразует входное значение в значение типа UInt16, но возвращает значение по умолчанию в случае ошибки. Если значение default не передано, то в случае ошибки возвращается 0.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Выражение / Строка.
  • default (необязательный) — Значение по умолчанию, которое следует вернуть, если анализ в тип UInt16 не удался. UInt16.

Поддерживаемые аргументы:

  • Значения или строковые представления типа (U)Int8/16/32/64/128/256.
  • Значения типа Float32/64.

Аргументы, для которых возвращается значение по умолчанию:

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt16OrDefault('0xc0fe', CAST('0', 'UInt16'));.
примечание

Если входное значение не может быть представлено в пределах UInt16, происходит переполнение или недополнение результата. Это не считается ошибкой.

Возвращаемое значение

  • 16-битное беззнаковое целое число, если успешно, в противном случае возвращает значение по умолчанию, если оно передано, или 0, если нет. UInt16.
примечание
  • Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.
  • Тип значения по умолчанию должен соответствовать типу приведения.

Пример

Запрос:

Результат:

См. также

toUInt32

Преобразует входное значение в значение типа UInt32. Выдает исключение в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Выражение.

Поддерживаемые аргументы:

  • Значения или строковые представления типа (U)Int8/16/32/64/128/256.
  • Значения типа Float32/64.

Недопустимые аргументы:

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt32('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах UInt32, результат переполняется или недополняется. Это не считается ошибкой. Например: SELECT toUInt32(4294967296) == 0;

Возвращаемое значение

  • 32-битное беззнаковое целое число. UInt32.
примечание

Функция использует округление к нулю, что означает, что она отбрасывает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt32OrZero

Подобно toUInt32, эта функция преобразует входное значение в значение типа UInt32, но возвращает 0 в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. Строка.

Поддерживаемые аргументы:

  • Строковые представления (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, происходит переполнение или недостаток результата. Это не считается ошибкой.

Возвращаемое значение

  • 32-битное беззнаковое целое значение, если успешно, в противном случае NULL. UInt32 / NULL.
примечание

Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

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, происходит переполнение или недостаток результата. Это не считается ошибкой.

Возвращаемое значение

  • 64-битное беззнаковое целое значение, если успешно, иначе NULL. UInt64 / NULL.
примечание

Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt64OrDefault

Как и toUInt64, эта функция преобразует входное значение в значение типа UInt64, но возвращает значение по умолчанию в случае ошибки. Если значение default не передано, то возвращается 0 в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Expression / String.
  • default (необязательный) — Значение по умолчанию для возврата, если разбор в тип 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 — Выражение, возвращающее число или строковое представление числа. Expression.

Поддерживаемые аргументы:

  • Значения или строковые представления типа (U)Int8/16/32/64/128/256.
  • Значения типа Float32/64.

Неподдерживаемые аргументы:

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt128('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах UInt128, результат переполняется или недостает. Это не считается ошибкой.

Возвращаемое значение

  • 128-битное беззнаковое целое значение. UInt128.
примечание

Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt128OrZero

Как и toUInt128, эта функция преобразует входное значение в значение типа UInt128, но возвращает 0 в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Expression / String.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256.

Неподдерживаемые аргументы (возвращает 0):

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt128OrZero('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах UInt128, происходит переполнение или недостаток результата. Это не считается ошибкой.

Возвращаемое значение

  • 128-битное беззнаковое целое значение, если успешно, иначе 0. UInt128.
примечание

Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt128OrNull

Как и toUInt128, эта функция преобразует входное значение в значение типа UInt128, но возвращает NULL в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. Expression / String.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256.

Неподдерживаемые аргументы (возвращает \N):

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt128OrNull('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах UInt128, происходит переполнение или недостаток результата. Это не считается ошибкой.

Возвращаемое значение

  • 128-битное беззнаковое целое значение, если успешно, иначе NULL. UInt128 / NULL.
примечание

Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt128OrDefault

Как и toUInt128, эта функция преобразует входное значение в значение типа UInt128, но возвращает значение по умолчанию в случае ошибки. Если значение default не передано, то возвращается 0 в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Expression / String.
  • default (необязательный) — Значение по умолчанию для возврата, если разбор в тип UInt128 не удался. UInt128.

Поддерживаемые аргументы:

  • (U)Int8/16/32/64/128/256.
  • Float32/64.
  • Строковые представления (U)Int8/16/32/128/256.

Аргументы, для которых возвращается значение по умолчанию:

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt128OrDefault('0xc0fe', CAST('0', 'UInt128'));.
примечание

Если входное значение не может быть представлено в пределах UInt128, происходит переполнение или недостаток результата. Это не считается ошибкой.

Возвращаемое значение

  • 128-битное беззнаковое целое значение, если успешно; иначе возвращает значение по умолчанию, если передано, или 0, если нет. UInt128.
примечание
  • Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.
  • Тип значения по умолчанию должен совпадать с типом преобразования.

Пример

Запрос:

Результат:

См. также

toUInt256

Преобразует входное значение в значение типа UInt256. Вызывает исключение в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Expression.

Поддерживаемые аргументы:

  • Значения или строковые представления типа (U)Int8/16/32/64/128/256.
  • Значения типа Float32/64.

Неподдерживаемые аргументы:

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt256('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах UInt256, результат переполняется или недостает. Это не считается ошибкой.

Возвращаемое значение

  • 256-битное беззнаковое целое значение. Int256.
примечание

Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt256OrZero

Как и toUInt256, эта функция преобразует входное значение в значение типа UInt256, но возвращает 0 в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. String.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256.

Неподдерживаемые аргументы (возвращает 0):

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt256OrZero('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах UInt256, происходит переполнение или недостаток результата. Это не считается ошибкой.

Возвращаемое значение

  • 256-битное беззнаковое целое значение, если успешно, иначе 0. UInt256.
примечание

Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt256OrNull

Как и toUInt256, эта функция преобразует входное значение в значение типа UInt256, но возвращает NULL в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. String.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256.

Неподдерживаемые аргументы (возвращает \N):

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt256OrNull('0xc0fe');.
примечание

Если входное значение не может быть представлено в пределах UInt256, происходит переполнение или недостаток результата. Это не считается ошибкой.

Возвращаемое значение

  • 256-битное беззнаковое целое значение, если успешно, иначе NULL. UInt256 / NULL.
примечание

Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.

Пример

Запрос:

Результат:

См. также

toUInt256OrDefault

Как и toUInt256, эта функция преобразует входное значение в значение типа UInt256, но возвращает значение по умолчанию в случае ошибки. Если значение default не передано, то возвращается 0 в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Expression / String.
  • default (необязательный) — Значение по умолчанию для возврата, если разбор в тип UInt256 не удался. UInt256.

Поддерживаемые аргументы:

  • Значения или строковые представления типа (U)Int8/16/32/64/128/256.
  • Значения типа Float32/64.

Аргументы, для которых возвращается значение по умолчанию:

  • Строковые представления значений Float32/64, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toUInt256OrDefault('0xc0fe', CAST('0', 'UInt256'));.
примечание

Если входное значение не может быть представлено в пределах UInt256, происходит переполнение или недостаток результата. Это не считается ошибкой.

Возвращаемое значение

  • 256-битное беззнаковое целое значение, если успешно; иначе возвращает значение по умолчанию, если передано, или 0, если нет. UInt256.
примечание
  • Функция использует округление к нулю, что означает, что она отсекает дробные цифры чисел.
  • Тип значения по умолчанию должен совпадать с типом преобразования.

Пример

Запрос:

Результат:

См. также

toFloat32

Преобразует входное значение в значение типа Float32. Вызывает исключение в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Expression.

Поддерживаемые аргументы:

  • Значения типа (U)Int8/16/32/64/128/256.
  • Строковые представления (U)Int8/16/32/128/256.
  • Значения типа Float32/64, включая NaN и Inf.
  • Строковые представления Float32/64, включая NaN и Inf (регистронезависимо).

Неподдерживаемые аргументы:

  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toFloat32('0xc0fe');.

Возвращаемое значение

  • 32-битное плавающее число. Float32.

Пример

Запрос:

Результат:

См. также

toFloat32OrZero

Как и toFloat32, эта функция преобразует входное значение в значение типа Float32, но возвращает 0 в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. String.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256, Float32/64.

Неподдерживаемые аргументы (возвращает 0):

  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toFloat32OrZero('0xc0fe');.

Возвращаемое значение

  • 32-битное значение Float, если успешно; в противном случае 0. Float32.

Пример

Запрос:

Результат:

См. также

toFloat32OrNull

Как и toFloat32, эта функция преобразует входное значение в значение типа Float32, но возвращает NULL в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. String.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256, Float32/64.

Неподдерживаемые аргументы (возвращает \N):

  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toFloat32OrNull('0xc0fe');.

Возвращаемое значение

  • 32-битное значение Float, если успешно; иначе \N. Float32.

Пример

Запрос:

Результат:

См. также

toFloat32OrDefault

Как и toFloat32, эта функция преобразует входное значение в значение типа Float32, но возвращает значение по умолчанию в случае ошибки. Если значение default не передано, то возвращается 0 в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Expression / String.
  • default (необязательный) — Значение по умолчанию для возврата, если разбор в тип Float32 не удался. Float32.

Поддерживаемые аргументы:

  • Значения типа (U)Int8/16/32/64/128/256.
  • Строковые представления (U)Int8/16/32/128/256.
  • Значения типа Float32/64, включая NaN и Inf.
  • Строковые представления Float32/64, включая NaN и Inf (регистронезависимо).

Аргументы, для которых возвращается значение по умолчанию:

  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toFloat32OrDefault('0xc0fe', CAST('0', 'Float32'));.

Возвращаемое значение

  • 32-битное значение Float, если успешно; в противном случае возвращает значение по умолчанию, если передано, или 0, если нет. Float32.

Пример

Запрос:

Результат:

См. также

toFloat64

Преобразует входное значение в значение типа Float64. Вызывает исключение в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Expression.

Поддерживаемые аргументы:

  • Значения типа (U)Int8/16/32/64/128/256.
  • Строковые представления (U)Int8/16/32/128/256.
  • Значения типа Float32/64, включая NaN и Inf.
  • Строковые представления типа Float32/64, включая NaN и Inf (регистронезависимо).

Неподдерживаемые аргументы:

  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toFloat64('0xc0fe');.

Возвращаемое значение

  • 64-битное плавающее число. Float64.

Пример

Запрос:

Результат:

См. также

toFloat64OrZero

Как и toFloat64, эта функция преобразует входное значение в значение типа Float64, но возвращает 0 в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. String.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256, Float32/64.

Неподдерживаемые аргументы (возвращают 0):

  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toFloat64OrZero('0xc0fe');.

Возвращаемое значение

  • 64-битное значение Float, если успешно, иначе 0. Float64.

Пример

Запрос:

Результат:

Смотрите также

toFloat64OrNull

Как и toFloat64, эта функция преобразует входное значение в значение типа Float64, но возвращает NULL в случае ошибки.

Синтаксис

Аргументы

  • x — Строковое представление числа. String.

Поддерживаемые аргументы:

  • Строковые представления (U)Int8/16/32/128/256, Float32/64.

Неподдерживаемые аргументы (возвращают \N):

  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toFloat64OrNull('0xc0fe');.

Возвращаемое значение

  • 64-битное значение Float, если успешно, иначе \N. Float64.

Пример

Запрос:

Результат:

Смотрите также

toFloat64OrDefault

Как и toFloat64, эта функция преобразует входное значение в значение типа Float64, но возвращает значение по умолчанию в случае ошибки. Если значение default не передано, тогда возвращается 0 в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Expression / String.
  • default (необязательный) — Значение по умолчанию, которое возвращается, если преобразование к типу Float64 не удалось. Float64.

Поддерживаемые аргументы:

  • Значения типов (U)Int8/16/32/64/128/256.
  • Строковые представления (U)Int8/16/32/128/256.
  • Значения типов Float32/64, включая NaN и Inf.
  • Строковые представления Float32/64, включая NaN и Inf (не чувствительно к регистру).

Аргументы, для которых возвращается значение по умолчанию:

  • Строковые представления двоичных и шестнадцатеричных значений, например, SELECT toFloat64OrDefault('0xc0fe', CAST('0', 'Float64'));.

Возвращаемое значение

  • 64-битное значение Float, если успешно, иначе возвращает значение по умолчанию, если оно передано, или 0, если нет. Float64.

Пример

Запрос:

Результат:

Смотрите также

toBFloat16

Преобразует входное значение в значение типа BFloat16. Вызывает исключение в случае ошибки.

Синтаксис

Аргументы

  • expr — Выражение, возвращающее число или строковое представление числа. Expression.

Поддерживаемые аргументы:

  • Значения типов (U)Int8/16/32/64/128/256.
  • Строковые представления (U)Int8/16/32/128/256.
  • Значения типов Float32/64, включая NaN и Inf.
  • Строковые представления Float32/64, включая NaN и Inf (не чувствительно к регистру).

Возвращаемое значение

  • 16-битное значение brain-float. BFloat16.

Пример

Смотрите также

toBFloat16OrZero

Преобразует строковое входное значение в значение типа BFloat16. Если строка не представляет собой число с плавающей точкой, функция возвращает ноль.

Синтаксис

Аргументы

  • x — Строковое представление числа. String.

Поддерживаемые аргументы:

  • Строковые представления числовых значений.

Неподдерживаемые аргументы (возвращают 0):

  • Строковые представления двоичных и шестнадцатеричных значений.
  • Числовые значения.

Возвращаемое значение

  • 16-битное значение brain-float, иначе 0. BFloat16.
примечание

Функция допускает тихую потерю точности при преобразовании из строкового представления.

Пример

Смотрите также

toBFloat16OrNull

Преобразует строковое входное значение в значение типа BFloat16, но если строка не представляет собой число с плавающей точкой, функция возвращает NULL.

Синтаксис

Аргументы

  • x — Строковое представление числа. String.

Поддерживаемые аргументы:

  • Строковые представления числовых значений.

Неподдерживаемые аргументы (возвращают NULL):

  • Строковые представления двоичных и шестнадцатеричных значений.
  • Числовые значения.

Возвращаемое значение

  • 16-битное значение brain-float, иначе NULL (\N). BFloat16.
примечание

Функция допускает тихую потерю точности при преобразовании из строкового представления.

Пример

Смотрите также

toDate

Преобразует аргумент в тип данных Date.

Если аргумент является DateTime или DateTime64, он обрезается и остается только дата из DateTime:

Если аргумент является String, он разбирается как Date или DateTime. Если он был разобран как DateTime, используется компонент даты:

Если аргумент является числом и выглядит как UNIX временная метка (больше 65535), он интерпретируется как DateTime, затем усечение до Date в текущем часовой зоне. Часовая зона может быть указана в качестве второго аргумента функции. Усечение до Date зависит от часовой зоны:

Приведенный пример демонстрирует, как одна и та же UNIX временная метка может интерпретироваться как разные даты в разных часовых поясах.

Если аргумент является числом и он меньше 65536, он интерпретируется как количество дней с 1970-01-01 (первый UNIX день) и преобразуется в Date. Это соответствует внутреннему числовому представлению типа Date. Пример:

Это преобразование не зависит от часовых поясов.

Если аргумент не вписывается в диапазон типа Date, это приводит к неопределённому поведению реализации, который может привести к наибольшей допустимой дате или переполнению:

Функцию toDate также можно записать в альтернативных формах:

toDateOrZero

То же, что и toDate, но возвращает нижнюю границу Date, если получен неверный аргумент. Поддерживается только аргумент String.

Пример

Запрос:

Результат:

toDateOrNull

То же, что и toDate, но возвращает NULL, если получен неверный аргумент. Поддерживается только аргумент String.

Пример

Запрос:

Результат:

toDateOrDefault

Как toDate, но если неудачно, возвращает значение по умолчанию, которое является либо вторым аргументом (если указано), либо, в противном случае, нижней границей Date.

Синтаксис

Пример

Запрос:

Результат:

toDateTime

Преобразует входное значение в DateTime.

Синтаксис

Аргументы

примечание

Если expr — число, оно интерпретируется как количество секунд с начала Unix Epoch (как Unix временная метка). Если expr — это String, он может быть интерпретирован как Unix временная метка или как строковое представление даты / даты с временем. Таким образом, разбор коротких строковых представлений чисел (до 4 цифр) явно отключен из-за неоднозначности, например, строка '1999' может быть как годом (неполное строковое представление даты / даты с временем), так и unix временной меткой. Более длинные числовые строки разрешены.

Возвращаемое значение

Пример

Запрос:

Результат:

toDateTimeOrZero

То же, что и toDateTime, но возвращает нижнюю границу DateTime, если получен неверный аргумент. Поддерживается только аргумент String.

Пример

Запрос:

Результат:

toDateTimeOrNull

То же, что и toDateTime, но возвращает NULL, если получен неверный аргумент. Поддерживается только аргумент String.

Пример

Запрос:

Результат:

toDateTimeOrDefault

Как toDateTime, но если неудачно, возвращает значение по умолчанию, которое является либо третьим аргументом (если указано), либо в противном случае нижней границей DateTime.

Синтаксис

Пример

Запрос:

Результат:

toDate32

Преобразует аргумент в тип Date32. Если значение выходит за пределы диапазона, toDate32 возвращает крайние значения, поддерживаемые Date32. Если аргумент имеет тип Date, учитываются его границы.

Синтаксис

Аргументы

Возвращаемое значение

  • Календарная дата. Тип Date32.

Пример

  1. Значение в пределах диапазона:
  1. Значение вне диапазона:
  1. С аргументом Date:

toDate32OrZero

То же, что и toDate32, но возвращает минимальное значение Date32, если получен неверный аргумент.

Пример

Запрос:

Результат:

toDate32OrNull

То же, что и toDate32, но возвращает NULL, если получен неверный аргумент.

Пример

Запрос:

Результат:

toDate32OrDefault

Преобразует аргумент в тип Date32. Если значение выходит за пределы диапазона, toDate32OrDefault возвращает нижнюю границу, поддерживаемую Date32. Если аргумент имеет тип Date, учитываются его границы. Возвращает значение по умолчанию, если получен неверный аргумент.

Пример

Запрос:

Результат:

toDateTime64

Преобразует входное значение в значение типа DateTime64.

Синтаксис

Аргументы

  • expr — Значение. String, UInt32, Float или DateTime.
  • scale - Размер тика (точность): 10-точность секунд. Допустимый диапазон: [ 0 : 9 ].
  • timezone (необязательный) - Часовой пояс указанного объекта datetime64.

Возвращаемое значение

  • Календарная дата и время суток с субсекундной точностью. DateTime64.

Пример

  1. Значение в пределах диапазона:
  1. Как десятичное с точностью:

Без десятичной точки значение все равно рассматривается как Unix временная метка в секундах:

  1. С timezone:

toDateTime64OrZero

Как toDateTime64, эта функция преобразует входное значение в значение типа DateTime64, но возвращает минимальное значение DateTime64, если был получен неверный аргумент.

Синтаксис

Аргументы

  • expr — Значение. String, UInt32, Float или DateTime.
  • scale - Размер тика (точность): 10-точность секунд. Допустимый диапазон: [ 0 : 9 ].
  • timezone (необязательный) - Часовой пояс указанного объекта DateTime64.

Возвращаемое значение

  • Календарная дата и время суток с субсекундной точностью, иначе минимальное значение DateTime64: 1970-01-01 01:00:00.000. DateTime64.

Пример

Запрос:

Результат:

Смотрите также

toDateTime64OrNull

Как и toDateTime64, эта функция преобразует входное значение в значение типа DateTime64, но возвращает NULL, если был получен неверный аргумент.

Синтаксис

Аргументы

  • expr — Значение. String, UInt32, Float или DateTime.
  • scale - Размер тика (точность): 10-точность секунд. Допустимый диапазон: [ 0 : 9 ].
  • timezone (необязательный) - Часовой пояс указанного объекта DateTime64.

Возвращаемое значение

  • Календарная дата и время суток с субсекундной точностью, иначе NULL. DateTime64/NULL.

Пример

Запрос:

Результат:

Смотрите также

toDateTime64OrDefault

Как toDateTime64, эта функция преобразует входное значение в значение типа DateTime64, но возвращает либо значение по умолчанию DateTime64, либо предоставленное значение по умолчанию, если был получен неверный аргумент.

Синтаксис

Аргументы

  • expr — Значение. String, UInt32, Float или DateTime.
  • scale - Размер тика (точность): 10-точность секунд. Допустимый диапазон: [ 0 : 9 ].
  • timezone (необязательный) - Часовой пояс указанного объекта DateTime64.
  • default (необязательный) - Значение по умолчанию для возврата, если получен неверный аргумент. DateTime64.

Возвращаемое значение

  • Календарная дата и время суток с субсекундной точностью, иначе минимальное значение DateTime64 или значение по умолчанию, если оно было передано. 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

Возвращаемое значение

Пример

Запрос:

Результат:

Смотрите также

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

Возвращаемое значение

Пример

Запрос:

Результат:

См. также

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) ). Слишком большие цифры в дробной части отбрасываются (не округляются). Слишком большие цифры в целой части приведут к исключению.

осторожно

Преобразования отбрасывают лишние цифры и могут работатьunexpectedly при работе с Float32/Float64, так как операции выполняются с использованием плавающих чисел. Например: toDecimal128(1.15, 2) равно 1.14, потому что 1.15 * 100 при использовании плавающей точки равно 114.99. Вы можете использовать строковый ввод, чтобы операции использовали основной целый тип: toDecimal128('1.15', 2) = 1.15

Возвращаемое значение

Пример

Запрос:

Результат:

См. также

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

Возвращаемое значение

Пример

Запрос:

Результат:

См. также

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

Функции для преобразования между числами, строками (но не фиксированными строками), датами и датами с временем. Все эти функции принимают один аргумент.

При преобразовании в строку или из строки, значение форматируется или разбирается с использованием тех же правил, что и для формата TabSeparated (и почти всех остальных текстовых форматов). Если строка не может быть разобрана, возникает исключение, и запрос отменяется.

При преобразовании дат в числа или наоборот, дата соответствует количеству дней с момента начала эпохи Unix. При преобразовании дат с временем в числа или наоборот, дата с временем соответствует количеству секунд с момента начала эпохи Unix.

Форматы даты и даты с временем для функций toDate/toDateTime определяются следующим образом:

В качестве исключения, если преобразование осуществляется из типов UInt32, Int32, UInt64 или Int64 в Date, и если число больше или равно 65536, число интерпретируется как метка времени Unix (а не как количество дней) и округляется до даты. Это позволяет поддерживать общее использование записи toDate(unix_timestamp), которое в противном случае было бы ошибкой и потребовало бы более громоздкой записи toDate(toDateTime(unix_timestamp)).

Преобразование между датой и датой с временем выполняется естественным образом: путем добавления нулевого времени или удаления времени.

Преобразование между числовыми типами использует те же правила, что и операции присваивания между различными числовыми типами в C++.

Кроме того, функция toString аргумента DateTime может принимать второй аргумент String, содержащий название часового пояса. Пример: Asia/Yekaterinburg В этом случае время форматируется в соответствии с указанным часовым поясом.

Пример

Запрос:

Результат:

Также см. функцию toUnixTimestamp.

toFixedString

Преобразует аргумент типа String в тип FixedString(N) (строка фиксированной длины N). Если строка имеет меньше байт, чем N, она дополняется нулевыми байтами справа. Если строка имеет больше байт, чем N, возникает исключение.

Синтаксис

Аргументы

  • s — Строка для преобразования в фиксированную строку. String.
  • N — Длина N. UInt8

Возвращаемое значение

  • Фиксированная строка длиной N от s. FixedString.

Пример

Запрос:

Результат:

toStringCutToZero

Принимает аргумент типа String или FixedString. Возвращает строку с содержимым, усеченным до первого найденного нулевого байта.

Синтаксис

Пример

Запрос:

Результат:

Запрос:

Результат:

toDecimalString

Преобразует числовое значение в строку с количеством дробных цифр в выходных данных, указанным пользователем.

Синтаксис

Аргументы

  • number — Значение, которое будет представлено в виде строки, Int, UInt, Float, Decimal,
  • scale — Количество дробных цифр, UInt8.
    • Максимальная масштаб для типов Decimal и Int, UInt составляет 77 (это максимальное возможное количество значащих цифр для Decimal),
    • Максимальная масштаб для Float составляет 60.

Возвращаемое значение

  • Входное значение, представленное как String с заданным количеством дробных цифр (масштаб). Число округляется вверх или вниз в соответствии с общими арифметическими правилами, если запрашиваемый масштаб меньше масштаба исходного числа.

Пример

Запрос:

Результат:

reinterpretAsUInt8

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt8. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как UInt8. UInt8.

Пример

Запрос:

Результат:

reinterpretAsUInt16

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt16. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как UInt16. UInt16.

Пример

Запрос:

Результат:

reinterpretAsUInt32

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt32. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как UInt32. UInt32.

Пример

Запрос:

Результат:

reinterpretAsUInt64

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt64. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как UInt64. UInt64.

Пример

Запрос:

Результат:

reinterpretAsUInt128

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt128. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как UInt128. UInt128.

Пример

Запрос:

Результат:

reinterpretAsUInt256

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt256. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как UInt256. UInt256.

Пример

Запрос:

Результат:

reinterpretAsInt8

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int8. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как Int8. Int8.

Пример

Запрос:

Результат:

reinterpretAsInt16

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int16. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как Int16. Int16.

Пример

Запрос:

Результат:

reinterpretAsInt32

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int32. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как Int32. Int32.

Пример

Запрос:

Результат:

reinterpretAsInt64

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int64. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как Int64. Int64.

Пример

Запрос:

Результат:

reinterpretAsInt128

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int128. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как Int128. Int128.

Пример

Запрос:

Результат:

reinterpretAsInt256

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int256. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как Int256. Int256.

Пример

Запрос:

Результат:

reinterpretAsFloat32

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Float32. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как Float32. Float32.

Пример

Запрос:

Результат:

reinterpretAsFloat64

Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Float64. В отличие от CAST, эта функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, вывод будет бессмысленным.

Синтаксис

Параметры

Возвращаемое значение

  • Переинтерпретированное значение x как Float64. Float64.

Пример

Запрос:

Результат:

reinterpretAsDate

Принимает строковое, фиксированное строковое или числовое значение и интерпретирует байты как число в порядке хоста (малый порядок). Возвращает дату из интерпретированного числа как количество дней с начала эпохи Unix.

Синтаксис

Параметры

Возвращаемое значение

Детали реализации

примечание

Если предоставленная строка недостаточно длинная, функция работает так, как будто строка дополнена необходимым количеством нулевых байтов. Если строка длиннее, чем необходимо, лишние байты игнорируются.

Пример

Запрос:

Результат:

reinterpretAsDateTime

Эти функции принимают строку и интерпретируют байты, размещенные в начале строки, как число в порядке хоста (малый порядок). Возвращает дату с временем, интерпретированную как количество секунд с начала эпохи Unix.

Синтаксис

Параметры

Возвращаемое значение

Детали реализации

примечание

Если предоставленная строка недостаточно длинная, функция работает так, как будто строка дополнена необходимым количеством нулевых байтов. Если строка длиннее, чем необходимо, лишние байты игнорируются.

Пример

Запрос:

Результат:

reinterpretAsString

Эта функция принимает число, дату или дату с временем и возвращает строку, содержащую байты, представляющие соответствующее значение в порядке хоста (малый порядок). Нулевые байты отбрасываются с конца. Например, значение типа UInt32 255 представляет собой строку длиной один байт.

Синтаксис

Параметры

Возвращаемое значение

  • Строка, содержащая байты, представляющие x. String.

Пример

Запрос:

Результат:

reinterpretAsFixedString

Эта функция принимает число, дату или дату с временем и возвращает FixedString, содержащую байты, представляющие соответствующее значение в порядке хоста (малый порядок). Нулевые байты отбрасываются с конца. Например, значение типа UInt32 255 представляет собой FixedString, длиной один байт.

Синтаксис

Параметры

Возвращаемое значение

  • Фиксированная строка, содержащая байты, представляющие x. FixedString.

Пример

Запрос:

Результат:

reinterpretAsUUID

примечание

В дополнение к функциям UUID, перечисленным здесь, имеется специальная документация по функциям UUID.

Принимает 16-байтную строку и возвращает UUID, интерпретируя каждую 8-байтовую половину в порядке байтов с малым порядком. Если строка недостаточно длинная, функция работает так, как будто строка дополнена необходимым количеством нулевых байтов до конца. Если строка длиннее 16 байт, лишние байты в конце игнорируются.

Синтаксис

Аргументы

  • fixed_string — Строка байтов в большом порядке. FixedString.

Возвращаемое значение

  • Значение типа UUID. UUID.

Примеры

Строка в UUID.

Запрос:

Результат:

Обратное преобразование из строки в UUID.

Запрос:

Результат:

reinterpret

Использует ту же последовательность байтов в памяти для значения x и переинтерпретирует его в целевой тип.

Синтаксис

Аргументы

  • x — Любой тип.
  • type — Целевой тип. String.

Возвращаемое значение

  • Значение целевого типа.

Примеры

Запрос:

Результат:

CAST

Преобразует входное значение в указанный тип данных. В отличие от функции reinterpret, CAST пытается представить то же значение, используя новый тип данных. Если преобразование не может быть выполнено, возникает исключение. Поддерживается несколько синтаксических вариантов.

Синтаксис

Аргументы

  • x — Значение для преобразования. Может быть любого типа.
  • T — Название целевого типа данных. String.
  • t — Целевой тип данных.

Возвращаемое значение

  • Преобразованное значение.
примечание

Если входное значение не подходит под границы целевого типа, результат переполняется. Например, CAST(-1, 'UInt8') возвращает 255.

Примеры

Запрос:

Результат:

Запрос:

Результат:

Преобразование в FixedString (N) работает только для аргументов типа String или FixedString.

Поддерживается преобразование в Nullable и обратно.

Пример

Запрос:

Результат:

Запрос:

Результат:

Смотрите также

Результат:

Запрос:

Результат:

accurateCastOrNull(x, T)

Преобразует входное значение x в указанный тип данных T. Всегда возвращает Nullable тип и возвращает NULL, если приведенное значение не может быть представлено в целевом типе.

Синтаксис

Аргументы

  • x — Входное значение.
  • T — Имя возвращаемого типа данных.

Возвращаемое значение

  • Значение, преобразованное в указанный тип данных T.

Пример

Запрос:

Результат:

Запрос:

Результат:

accurateCastOrDefault(x, T[, default_value])

Преобразует входное значение x в указанный тип данных T. Возвращает значение по умолчанию типа или default_value, если указано, если приведенное значение не может быть представлено в целевом типе.

Синтаксис

Аргументы

  • x — Входное значение.
  • T — Имя возвращаемого типа данных.
  • default_value — Значение по умолчанию возвращаемого типа.

Возвращаемое значение

  • Значение, преобразованное в указанный тип данных T.

Пример

Запрос:

Результат:

Запрос:

Результат:

toInterval

Создает значение типа Interval из числового значения и единицы интервала (например, 'second' или 'day').

Синтаксис

Аргументы

  • value — Длина интервала. Целые числа или строковые представления этих чисел, и дробные числа. (U)Int*/Float*/String.

  • unit — Тип интервала, который нужно создать. Строковый литерал. Возможные значения:

    • nanosecond
    • microsecond
    • millisecond
    • second
    • minute
    • hour
    • day
    • week
    • month
    • quarter
    • year

    Аргумент unit не чувствителен к регистру.

Возвращаемое значение

  • Результирующий интервал. Interval

Пример

toIntervalYear

Возвращает интервал n лет типа IntervalYear.

Синтаксис

Аргументы

  • n — Количество лет. Целые числа или строковые представления этих чисел, и дробные числа. (U)Int*/Float*/String.

Возвращаемые значения

Пример

Запрос:

Результат:

toIntervalQuarter

Возвращает интервал n кварталов типа IntervalQuarter.

Синтаксис

Аргументы

  • n — Количество кварталов. Целые числа или строковые представления этих чисел, и дробные числа. (U)Int*/Float*/String.

Возвращаемые значения

Пример

Запрос:

Результат:

toIntervalMonth

Возвращает интервал n месяцев типа IntervalMonth.

Синтаксис

Аргументы

  • n — Количество месяцев. Целые числа или строковые представления этих чисел, и дробные числа. (U)Int*/Float*/String.

Возвращаемые значения

Пример

Запрос:

Результат:

toIntervalWeek

Возвращает интервал n недель типа IntervalWeek.

Синтаксис

Аргументы

  • n — Количество недель. Целые числа или строковые представления этих чисел, и дробные числа. (U)Int*/Float*/String.

Возвращаемые значения

Пример

Запрос:

Результат:

toIntervalDay

Возвращает интервал n дней типа IntervalDay.

Синтаксис

Аргументы

  • n — Количество дней. Целые числа или строковые представления этих чисел, и дробные числа. (U)Int*/Float*/String.

Возвращаемые значения

Пример

Запрос:

Результат:

toIntervalHour

Возвращает интервал n часов типа IntervalHour.

Синтаксис

Аргументы

  • n — Количество часов. Целые числа или строковые представления этих чисел, и дробные числа. (U)Int*/Float*/String.

Возвращаемые значения

Пример

Запрос:

Результат:

toIntervalMinute

Возвращает интервал n минут типа IntervalMinute.

Синтаксис

Аргументы

  • n — Количество минут. Целые числа или строковые представления этих чисел, и дробные числа. (U)Int*/Float*/String.

Возвращаемые значения

Пример

Запрос:

Результат:

toIntervalSecond

Возвращает интервал n секунд типа IntervalSecond.

Синтаксис

Аргументы

  • n — Количество секунд. Целые числа или строковые представления этих чисел, и дробные числа. (U)Int*/Float*/String.

Возвращаемые значения

Пример

Запрос:

Результат:

toIntervalMillisecond

Возвращает интервал n миллисекунд типа IntervalMillisecond.

Синтаксис

Аргументы

  • n — Количество миллисекунд. Целые числа или строковые представления этих чисел, и дробные числа. (U)Int*/Float*/String.

Возвращаемые значения

Пример

Запрос:

Результат:

toIntervalMicrosecond

Возвращает интервал n микросекунд типа IntervalMicrosecond.

Синтаксис

Аргументы

  • n — Количество микросекунд. Целые числа или строковые представления этих чисел, и дробные числа. (U)Int*/Float*/String.

Возвращаемые значения

Пример

Запрос:

Результат:

toIntervalNanosecond

Возвращает интервал n наносекунд типа IntervalNanosecond.

Синтаксис

Аргументы

  • n — Количество наносекунд. Целые числа или строковые представления этих чисел, и дробные числа. (U)Int*/Float*/String.

Возвращаемые значения

Пример

Запрос:

Результат:

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.

Поддерживаемые спецификаторы формата

Все спецификаторы формата, перечисленные в formatDateTimeInJoda, поддерживаются, за исключением:

  • 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.

Поддерживаемые нестандартные форматы

  • Строка, содержащая 9..10-значный unix timestamp.
  • Строка с компонентами даты и времени: YYYYMMDDhhmmss, DD/MM/YYYY hh:mm:ss, DD-MM-YY hh:mm, YYYY-MM-DD hh:mm:ss и т. д.
  • Строка с датой, но без времени: YYYY, YYYYMM, YYYY*MM, DD/MM/YYYY, DD-MM-YY и т. д.
  • Строка с днем и временем: DD, DD hh, DD hh:mm. В этом случае MM заменяется на 01.
  • Строка, которая включает дату и время вместе с информацией о смещении часового пояса: YYYY-MM-DD hh:mm:ss ±h:mm и т. д. Например, 2020-12-12 17:36:00 -5:00.
  • Timestamp syslog: Mmm dd hh:mm:ss. Например, Jun 9 14:20:32.

Для всех форматов с разделителями функция разбирает названия месяцев, выраженные полным названием или первыми тремя буквами названия месяца. Примеры: 24/DEC/18, 24-Dec-18, 01-September-2018. Если год не указан, он считается равным текущему году. Если полученная дата и время попадают в будущее (даже на секунду позже текущего момента), то текущий год заменяется на предыдущий.

Возвращаемое значение

  • 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).

Синтаксис

Аргументы

Возвращаемые значения

Пример

Запрос:

Результат:

toUnixTimestamp64Second

Преобразует DateTime64 в значение Int64 с фиксированной точностью в секунду. Входное значение имеет соответствующее повышение или понижение в зависимости от его точности.

примечание

Возвращаемое значение является временной меткой в UTC, а не в часовом поясе DateTime64.

Синтаксис

Аргументы

  • value — Значение DateTime64 с любой точностью. DateTime64.

Возвращаемое значение

  • value, преобразованное в тип Int64. Int64.

Пример

Запрос:

Результат:

toUnixTimestamp64Milli

Преобразует DateTime64 в значение Int64 с фиксированной точностью до миллисекунд. Входное значение масштабируется вверх или вниз в зависимости от его точности.

примечание

Выходное значение — это метка времени в UTC, а не в зоне времени DateTime64.

Синтаксис

Аргументы

  • value — значение DateTime64 с любой точностью. DateTime64.

Возвращаемое значение

  • value, преобразованное в тип данных Int64. Int64.

Пример

Запрос:

Результат:

toUnixTimestamp64Micro

Преобразует DateTime64 в значение Int64 с фиксированной точностью до микросекунд. Входное значение масштабируется вверх или вниз в зависимости от его точности.

примечание

Выходное значение — это метка времени в UTC, а не в зоне времени DateTime64.

Синтаксис

Аргументы

  • value — значение DateTime64 с любой точностью. DateTime64.

Возвращаемое значение

  • value, преобразованное в тип данных Int64. Int64.

Пример

Запрос:

Результат:

toUnixTimestamp64Nano

Преобразует DateTime64 в значение Int64 с фиксированной точностью до наносекунд. Входное значение масштабируется вверх или вниз в зависимости от его точности.

примечание

Выходное значение — это метка времени в UTC, а не в зоне времени DateTime64.

Синтаксис

Аргументы

  • value — значение DateTime64 с любой точностью. DateTime64.

Возвращаемое значение

  • value, преобразованное в тип данных Int64. Int64.

Пример

Запрос:

Результат:

fromUnixTimestamp64Second

Преобразует Int64 в значение DateTime64 с фиксированной точностью до секунд и необязательной зоной времени. Входное значение масштабируется вверх или вниз в зависимости от его точности.

примечание

Обратите внимание, что входное значение рассматривается как метка времени UTC, а не метка времени в данной (или подразумеваемой) зоне времени.

Синтаксис

Аргументы

  • value — значение с любой точностью. Int64.
  • timezone — (необязательно) название зоны времени результата. String.

Возвращаемое значение

  • value, преобразованное в DateTime64 с точностью 0. DateTime64.

Пример

Запрос:

Результат:

fromUnixTimestamp64Milli

Преобразует Int64 в значение DateTime64 с фиксированной точностью до миллисекунд и необязательной зоной времени. Входное значение масштабируется вверх или вниз в зависимости от его точности.

примечание

Обратите внимание, что входное значение рассматривается как метка времени UTC, а не метка времени в данной (или подразумеваемой) зоне времени.

Синтаксис

Аргументы

  • value — значение с любой точностью. Int64.
  • timezone — (необязательно) название зоны времени результата. String.

Возвращаемое значение

  • value, преобразованное в DateTime64 с точностью 3. DateTime64.

Пример

Запрос:

Результат:

fromUnixTimestamp64Micro

Преобразует Int64 в значение DateTime64 с фиксированной точностью до микросекунд и необязательной зоной времени. Входное значение масштабируется вверх или вниз в зависимости от его точности.

примечание

Обратите внимание, что входное значение рассматривается как метка времени UTC, а не метка времени в данной (или подразумеваемой) зоне времени.

Синтаксис

Аргументы

  • value — значение с любой точностью. Int64.
  • timezone — (необязательно) название зоны времени результата. String.

Возвращаемое значение

  • value, преобразованное в DateTime64 с точностью 6. DateTime64.

Пример

Запрос:

Результат:

fromUnixTimestamp64Nano

Преобразует Int64 в значение DateTime64 с фиксированной точностью до наносекунд и необязательной зоной времени. Входное значение масштабируется вверх или вниз в зависимости от его точности.

примечание

Обратите внимание, что входное значение рассматривается как метка времени UTC, а не метка времени в данной (или подразумеваемой) зоне времени.

Синтаксис

Аргументы

  • value — значение с любой точностью. Int64.
  • timezone — (необязательно) название зоны времени результата. String.

Возвращаемое значение

  • value, преобразованное в DateTime64 с точностью 9. DateTime64.

Пример

Запрос:

Результат:

formatRow

Преобразует произвольные выражения в строку в указанном формате.

Синтаксис

Аргументы

  • format — текстовый формат. Например, CSV, TSV.
  • x,y, ... — выражения.

Возвращаемое значение

  • Отформатированная строка. (для текстовых форматов она обычно заканчивается символом новой строки).

Пример

Запрос:

Результат:

Примечание: Если формат содержит суффикс/префикс, он будет записан в каждой строке.

Пример

Запрос:

Результат:

Примечание: Только форматы на основе строк поддерживаются в этой функции.

formatRowNoNewline

Преобразует произвольные выражения в строку в указанном формате. Отличается от formatRow тем, что эта функция обрезает последний \n, если он есть.

Синтаксис

Аргументы

  • format — текстовый формат. Например, CSV, TSV.
  • x,y, ... — выражения.

Возвращаемое значение

  • Отформатированная строка.

Пример

Запрос:

Результат: