Update bin/unbin

This commit is contained in:
Roman Zhukov 2021-08-30 13:35:27 +00:00
parent 6decf659c2
commit 61091395cd
2 changed files with 25 additions and 5 deletions

View File

@ -220,7 +220,7 @@ Alias: `BIN`.
For integer arguments, it prints bin digits from the most significant to least significant (big-endian or “human-readable” order). It starts with the most significant non-zero byte (leading zero bytes are omitted) but always prints eight digits of every byte if the leading digit is zero.
Values of type `Date` and `DateTime` are formatted as corresponding integers (the number of days since Epoch for Date and the value of Unix Timestamp for DateTime).
Values of type [Date](../../sql-reference/data-types/date.md) and [DateTime](../../sql-reference/data-types/datetime.md) are formatted as corresponding integers (the number of days since Epoch for `Date` and the value of Unix Timestamp for `DateTime`).
For `String` and `FixedString`, all bytes are simply encoded as eight binary numbers. Zero bytes are not omitted.
@ -284,7 +284,7 @@ Result:
## unbin {#unbinstr}
Interprets each pair of binary digits (in the argument) as a number and converts it to the byte represented by the number. The return value is a binary string (BLOB). The functions performs the opposite operation of [bin](#bin).
Interprets each pair of binary digits (in the argument) as a number and converts it to the byte represented by the number. The functions performs the opposite operation of [bin](#bin).
**Syntax**
@ -299,7 +299,7 @@ If you want to convert the result to a number, you can use the [reverse](../../s
!!! note "Note"
If `unbin` is invoked from within the `clickhouse-client`, binary strings display using UTF-8.
Supports binary digits `0-1`. The number of binary digits does not have to be multiples of eight. If the argument string contains anything other than binary digits, some implementation-defined result is returned (an exception isnt thrown). For a numeric argument the inverse of bin(N) is not performed by unbin().
Supports binary digits `0-1`. The number of binary digits does not have to be multiples of eight. If the argument string contains anything other than binary digits, some implementation-defined result is returned (an exception isnt thrown). For a numeric argument the inverse of `bin(N)` is not performed by `unbin()`.
**Arguments**

View File

@ -210,6 +210,8 @@ SELECT reinterpretAsUInt64(reverse(unhex('FFF'))) AS num;
## bin {#bin}
Возвращает строку, содержащую бинарное представление аргумента.
**Синтаксис**
``` sql
@ -218,14 +220,24 @@ bin(arg)
Алиас: `BIN`.
Для целочисленных аргументов возвращаются двоичные числа от наиболее значимого до наименее значимого (`big-endian` или в понятном человеку порядке). Порядок начинается с самого значимого ненулевого байта (начальные нулевые байты опущены), но всегда возвращает восемь цифр каждого байта, если начальная цифра равна нулю.
Значения типа [Date](../../sql-reference/data-types/date.md) и [DateTime](../../sql-reference/data-types/datetime.md) форматируются как соответствующие целые числа (количество дней с момента unix-эпохи для `Date` и значение Unix Timestamp для `DateTime`).
Для `String` и `FixedString` все байты кодируются как восемь двоичных чисел. Нулевые байты не опущены.
Значения `floating-point` and `Decimal` кодируются как их представление в памяти. Поскольку мы поддерживаем архитектуру `little-endian`, они кодируются от младшего к старшему байту. Нулевые начальные конечные байты не опущены.
**Аргументы**
- `arg`
- `arg`значение для преобразования в двоичный код. [String](../../sql-reference/data-types/string.md), [UInt](../../sql-reference/data-types/int-uint.md), [Float](../../sql-reference/data-types/float.md), [Decimal](../../sql-reference/data-types/decimal.md), [Date](../../sql-reference/data-types/date.md) или [DateTime](../../sql-reference/data-types/datetime.md).
**Возвращаемое значение**
- Бинарная строка (BLOB).
- Бинарная строка (BLOB) — двоичное представление аргумента.
Тип: [String](../../sql-reference/data-types/string.md).
@ -277,6 +289,7 @@ SELECT bin(toFloat64(number)) AS bin_presentation FROM numbers(15, 2);
## unbin {#unbinstr}
Интерпретирует каждую пару двоичных цифр аргумента как число и преобразует его в байт, представленный числом. Функция выполняет операцию, противоположную [bin](#bin).
**Синтаксис**
@ -286,6 +299,13 @@ unbin(arg)
Алиас: `UNBIN`.
Если вы хотите преобразовать результат в число, вы можете использовать [reverse](../../sql-reference/functions/string-functions.md#reverse)и [reinterpretAs<Type>](../../sql-reference/functions/type-conversion-functions.md#type-conversion-functions) функции.
!!! note "Note"
Если `unbin` вызывается из клиента `clickhouse-client`, бинарная строка возвращается в кодировке UTF-8.
Поддерживает двоичные цифры `0-1`. Количество двоичных цифр не обязательно должно быть кратно восьми. Если строка аргумента содержит что-либо, кроме двоичных цифр, возвращается некоторый результат, определенный реализацией (ошибки не возникает). Для числового аргумента обратное значение bin(N), функцией unbin() не выполняется.
**Аргументы**
- `arg`