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