Функции Преобразования Типов
Общие Проблемы с Преобразованием Данных
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
в случае ошибки.
Синтаксис
Аргументы
Поддерживаемые аргументы:
- Строковые представления (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
Функция использует округление к нулю , что означает обрезание дробных цифр чисел.
Пример
Запрос:
Результат:
См. также
Аргументы
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-битовое значение Float, если успешно, в противном случае
0
. Float32.
Пример
Запрос:
Результат:
См. также
toFloat32OrNull
Как и toFloat32
, эта функция преобразует входное значение в значение типа Float32, но возвращает NULL
в случае ошибки.
Синтаксис
Аргументы
x
— Строковое представление числа. String.
Поддерживаемые аргументы:
- Строковые представления (U)Int8/16/32/128/256, Float32/64.
Неподдерживаемые аргументы (возвращают \N
):
- Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toFloat32OrNull('0xc0fe');
.
Возвращаемое значение
- 32-битовое значение Float, если успешно, в противном случае
\N
. Float32.
Пример
Запрос:
Результат:
См. также
toFloat32OrDefault
Как и toFloat32
, эта функция преобразует входное значение в значение типа Float32, но возвращает значение по умолчанию в случае ошибки.
Если значение default
не передано, то в случае ошибки возвращается 0
.
Синтаксис
Аргументы
expr
— Выражение, возвращающее число или строковое представление числа. Expression / String.default
(необязательно) — Значение по умолчанию, которое возвращается, если преобразование в типFloat32
не удалось. Float32.
Поддерживаемые аргументы:
- Значения типа (U)Int8/16/32/64/128/256.
- Строковые представления (U)Int8/16/32/128/256.
- Значения типа Float32/64, включая
NaN
иInf
. - Строковые представления Float32/64, включая
NaN
иInf
(не чувствительны к регистру).
Аргументы, для которых возвращается значение по умолчанию:
- Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toFloat32OrDefault('0xc0fe', CAST('0', 'Float32'));
.
Возвращаемое значение
- 32-битовое значение Float, если успешно, в противном случае возвращает значение по умолчанию, если оно передано, или
0
, если нет. Float32.
Пример
Запрос:
Результат:
См. также
toFloat64
Преобразует входное значение в значение типа Float64
. Вызывает исключение в случае ошибки.
Синтаксис
Аргументы
expr
— Выражение, возвращающее число или строковое представление числа. Expression.
Поддерживаемые аргументы:
- Значения типа (U)Int8/16/32/64/128/256.
- Строковые представления (U)Int8/16/32/128/256.
- Значения типа Float32/64, включая
NaN
иInf
. - Строковые представления типа Float32/64, включая
NaN
иInf
(не чувствительны к регистру).
Неподдерживаемые аргументы:
- Строковые представления двоичных и шестнадцатеричных значений, например,
SELECT toFloat64('0xc0fe');
.
Возвращаемое значение
- 64-битовое плавающее значение. Float64.
Пример
Запрос:
Результат:
См. также
Аргументы
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-точность секунд. Допустимый диапазон: [ 0 : 9 ].timezone
(необязательный) - Часовой пояс указанного объекта datetime64.
Возвращаемое значение
- Календарная дата и время суток с субсекундной точностью. DateTime64.
Пример
- Значение находится в пределах диапазона:
- Как десятичное число с точностью:
Без десятичной точки значение все равно трактуется как временная метка Unix в секундах:
- С
timezone
:
toDateTime64OrZero
Как toDateTime64, эта функция преобразует входное значение в значение типа DateTime64, но возвращает минимальное значение DateTime64, если получен недействительный аргумент.
Синтаксис
Аргументы
expr
— Значение. String, UInt32, Float или DateTime.scale
- Размер тика (точность): 10-точность секунд. Допустимый диапазон: [ 0 : 9 ].timezone
(необязательный) - Часовой пояс указанного объекта DateTime64.
Возвращаемое значение
- Календарная дата и время суток с субсекундной точностью, в противном случае минимальное значение
DateTime64
:1970-01-01 01:00:00.000
. DateTime64.
Пример
Запрос:
Результат:
Смотрите также
toDateTime64OrNull
Как toDateTime64, эта функция преобразует входное значение в значение типа DateTime64, но возвращает NULL
, если получен недействительный аргумент.
Синтаксис
Аргументы
expr
— Значение. String, UInt32, Float или DateTime.scale
- Размер тика (точность): 10-точность секунд. Допустимый диапазон: [ 0 : 9 ].timezone
(необязательный) - Часовой пояс указанного объекта DateTime64.
Возвращаемое значение
- Календарная дата и время суток с субсекундной точностью, в противном случае
NULL
. DateTime64/NULL.
Пример
Запрос:
Результат:
Смотрите также
toDateTime64OrDefault
Как toDateTime64, эта функция преобразует входное значение в значение типа DateTime64, но возвращает либо значение по умолчанию DateTime64, либо предоставленное значение по умолчанию, если получен недействительный аргумент.
Синтаксис
Аргументы
expr
— Значение. String, UInt32, Float или DateTime.scale
- Размер тика (точность): 10-точность секунд. Допустимый диапазон: [ 0 : 9 ].timezone
(необязательный) - Часовой пояс указанного объекта DateTime64.default
(необязательный) - Значение по умолчанию для возвращения при получении недействительного аргумента. DateTime64.
Возвращаемое значение
- Календарная дата и время суток с субсекундной точностью, в противном случае минимальное значение
DateTime64
или значение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).
Пример
Запрос:
Результат:
Аргументы
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 штамп времени (а не как количество дней) и округляется до даты. Это позволяет поддерживать распространенную практику записи toDate(unix_timestamp)
, что в противном случае привело бы к ошибке и потребовало бы написания более громоздкой записи toDate(toDateTime(unix_timestamp))
.
Конвертация между датой и датой с временем выполняется естественным образом: путем добавления нулевого времени или удаления времени.
Конвертация между числовыми типами использует те же правила, что и присвоения между различными числовыми типами в C++.
Кроме того, функция toString аргумента DateTime может принимать второй строковый аргумент, содержащий название временной зоны. Пример: Asia/Yekaterinburg
. В этом случае время форматируется в соответствии с указанной временной зоной.
Пример
Запрос:
Результат:
Также см. функцию toUnixTimestamp
.
toFixedString
Конвертирует аргумент типа String в тип FixedString(N) (строка фиксированной длины N). Если строка имеет меньше байт, чем N, она дополняется нулевыми байтами справа. Если строка имеет больше байт, чем N, генерируется исключение.
Синтаксис
Аргументы
Возвращаемое значение
- Фиксированная строка длины N для
s
. FixedString.
Пример
Запрос:
Результат:
toStringCutToZero
Принимает строковый или фиксированный строковый аргумент. Возвращает строку с содержимым, обрезанным на первом нулевом байте, найденном в строке.
Синтаксис
Пример
Запрос:
Результат:
Запрос:
Результат:
toDecimalString
Конвертирует числовое значение в строку с количеством дробных знаков в выводе, указанным пользователем.
Синтаксис
Аргументы
number
— Значение, которое нужно представить в виде строки, Int, UInt, Float, Decimal,scale
— Количество дробных знаков, UInt8.
Возвращаемое значение
- Входное значение, представленное в виде String с заданным количеством дробных знаков (шкала). Число округляется вверх или вниз в соответствии с общими арифметическими правилами, если запрашиваемая шкала меньше оригинальной шкалы числа.
Пример
Запрос:
Результат:
reinterpretAsUInt8
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt8. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как UInt8. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как UInt8. UInt8.
Пример
Запрос:
Результат:
reinterpretAsUInt16
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt16. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как UInt16. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как UInt16. UInt16.
Пример
Запрос:
Результат:
reinterpretAsUInt32
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt32. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как UInt32. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как UInt32. UInt32.
Пример
Запрос:
Результат:
reinterpretAsUInt64
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt64. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как UInt64. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как UInt64. UInt64.
Пример
Запрос:
Результат:
reinterpretAsUInt128
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt128. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как UInt128. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как UInt128. UInt128.
Пример
Запрос:
Результат:
reinterpretAsUInt256
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа UInt256. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как UInt256. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как UInt256. UInt256.
Пример
Запрос:
Результат:
reinterpretAsInt8
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int8. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как Int8. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как Int8. Int8.
Пример
Запрос:
Результат:
reinterpretAsInt16
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int16. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как Int16. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как Int16. Int16.
Пример
Запрос:
Результат:
reinterpretAsInt32
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int32. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как Int32. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как Int32. Int32.
Пример
Запрос:
Результат:
reinterpretAsInt64
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int64. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как Int64. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как Int64. Int64.
Пример
Запрос:
Результат:
reinterpretAsInt128
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int128. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как Int128. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как Int128. Int128.
Пример
Запрос:
Результат:
reinterpretAsInt256
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Int256. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как Int256. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как Int256. Int256.
Пример
Запрос:
Результат:
reinterpretAsFloat32
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Float32. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как Float32. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как Float32. Float32.
Пример
Запрос:
Результат:
reinterpretAsFloat64
Выполняет переинтерпретацию байтов, рассматривая входное значение как значение типа Float64. В отличие от CAST
, функция не пытается сохранить оригинальное значение - если целевой тип не может представить входной тип, вывод является бессмысленным.
Синтаксис
Параметры
x
: значение для переинтерпретации как Float64. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Переинтерпретированное значение
x
как Float64. Float64.
Пример
Запрос:
Результат:
reinterpretAsDate
Принимает строку, фиксированную строку или числовое значение и интерпретирует байты как число в порядке хоста (младший байт первее). Возвращает дату из интерпретированного числа как количество дней с начала эпохи Unix.
Синтаксис
Параметры
x
: количество дней с начала эпохи Unix. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Дата. Date.
Детали реализации
Если предоставленная строка недостаточно длинная, функция работает так, как если бы строка была дополнена необходимым количеством нулевых байтов. Если строка длиннее, чем необходимо, лишние байты игнорируются.
Пример
Запрос:
Результат:
reinterpretAsDateTime
Эти функции принимают строку и интерпретируют байты, расположенные в начале строки, как число в порядке хоста (младший байт первее). Возвращает дату с временем, интерпретированную как количество секунд с начала эпохи Unix.
Синтаксис
Параметры
x
: количество секунд с начала эпохи Unix. (U)Int*, Float, Date, DateTime, UUID, String или FixedString.
Возвращаемое значение
- Дата и время. DateTime.
Детали реализации
Если предоставленная строка недостаточно длинная, функция работает так, как если бы строка была дополнена необходимым количеством нулевых байтов. Если строка длиннее, чем необходимо, лишние байты игнорируются.
Пример
Запрос:
Результат:
reinterpretAsString
Эта функция принимает число, дату или дату с временем и возвращает строку, содержащую байты, представляющие соответствующее значение в порядке хоста (младший байт первее). Нулевые байты отбрасываются с конца. Например, значение типа UInt32 255 - это строка длиной в один байт.
Синтаксис
Параметры
Возвращаемое значение
- Строка, содержащая байты, представляющие
x
. String.
Пример
Запрос:
Результат:
reinterpretAsFixedString
Эта функция принимает число, дату или дату с временем и возвращает FixedString, содержащую байты, представляющие соответствующее значение в порядке хоста (младший байт первее). Нулевые байты отбрасываются с конца. Например, значение типа UInt32 255 - это FixedString, длиной в один байт.
Синтаксис
Параметры
Возвращаемое значение
- Фиксированная строка, содержащая байты, представляющие
x
. FixedString.
Пример
Запрос:
Результат:
reinterpretAsUUID
В дополнение к перечисленным здесь функциям UUID есть отдельная документация для функций UUID.
Принимает строку длиной 16 байт и возвращает UUID, интерпретируя каждую 8-байтовую половину в порядке младшего байта первее. Если строка недостаточно длинная, функция работает так, как если бы строка была дополнена необходимым количеством нулевых байтов до конца. Если строка длиннее 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 настройка
Результат:
Запрос:
Результат:
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
лет. 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, за исключением того, что он возвращает дату 0, когда сталкивается с форматом даты, который не может быть обработан.
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, за исключением того, что он возвращает дату 0, когда сталкивается с форматом даты, который не может быть обработан.
parseDateTimeInJodaSyntaxOrNull
Тот же функционал, что и parseDateTimeInJodaSyntax, за исключением того, что он возвращает NULL
, когда сталкивается с форматом даты, который не может быть обработан.
parseDateTime64
Конвертирует String в DateTime64 согласно строке формата MySQL.
Синтаксис
Аргументы
str
— Строка, которая будет разобрана.format
— Строка формата. Необязательный.%Y-%m-%d %H:%i:%s.%f
, если не указано.timezone
— Часовой пояс. Необязательный.
Возвращаемое значение(я)
Возвращает значение DateTime64, разобранное из входной строки согласно строке формата в стиле MySQL. Точность возвращаемого значения равна 6.
parseDateTime64OrZero
Тот же функционал, что и parseDateTime64, за исключением того, что он возвращает дату 0, когда сталкивается с форматом даты, который не может быть обработан.
parseDateTime64OrNull
Тот же функционал, что и parseDateTime64, за исключением того, что он возвращает NULL
, когда сталкивается с форматом даты, который не может быть обработан.
parseDateTime64InJodaSyntax
Конвертирует String в DateTime64 согласно строке формата Joda.
Синтаксис
Аргументы
str
— Строка, которая будет разобрана.format
— Строка формата. Необязательный.yyyy-MM-dd HH:mm:ss
, если не указано.timezone
— Часовой пояс. Необязательный.
Возвращаемое значение(я)
Возвращает значение DateTime64, разобранное из входной строки согласно строке формата в стиле Joda.
Точность возвращаемого значения равна количеству заполнителей S
в строке формата (но не более 6).
parseDateTime64InJodaSyntaxOrZero
Тот же функционал, что и parseDateTime64InJodaSyntax, за исключением того, что он возвращает дату 0, когда сталкивается с форматом даты, который не может быть обработан.
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, за исключением того, что он возвращает дату 0 или дату и время 0, когда сталкивается с форматом даты, который не может быть обработан.
parseDateTimeBestEffortUSOrNull
То же, что и функция parseDateTimeBestEffortUS, за исключением того, что она возвращает NULL
, когда сталкивается с форматом даты, который не может быть обработан.
parseDateTimeBestEffortUSOrZero
То же, что и функция parseDateTimeBestEffortUS, за исключением того, что она возвращает дату 0 (1970-01-01
) или дату 0 с временем (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, за исключением того, что он возвращает дату 0 или дату и время 0, когда сталкивается с форматом даты, который не может быть обработан.
parseDateTime64BestEffortUSOrNull
То же, что и parseDateTime64BestEffort, за исключением того, что эта функция предпочитает формат даты США (MM/DD/YYYY
и т.д.) в случае неопределенности и возвращает NULL
, когда сталкивается с форматом даты, который не может быть обработан.
parseDateTime64BestEffortUSOrZero
То же, что и parseDateTime64BestEffort, за исключением того, что эта функция предпочитает формат даты США (MM/DD/YYYY
и т.д.) в случае неопределенности и возвращает дату 0 или дату и время 0, когда сталкивается с форматом даты, который не может быть обработан.
toLowCardinality
Конвертирует входной параметр в версию типа данных LowCardinality того же типа данных.
Чтобы конвертировать данные из типа LowCardinality
, используйте функцию CAST. Например, CAST(x as String)
.
Синтаксис
Аргументы
expr
— Выражение, результирующее в одном из поддерживаемых типов данных.
Возвращаемые значения
- Результат
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.
Пример
Запрос:
Результат:
Аргументы
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
, если таковой имеется.
Синтаксис
Аргументы
Возвращаемое значение
- Отформатированная строка.
Пример
Запрос:
Результат: