Последнее обновление
HEX
Описание
Функция HEX преобразует входные параметры в строковое шестнадцатеричное представление. Эта функция совместима с MySQL и поддерживает как числовые, так и строковые входные данные, применяя к ним разные правила преобразования.
Если входной параметр — число (типа BIGINT), функция возвращает строковое шестнадцатеричное представление этого числа.
Если входной параметр — строка, функция преобразует каждый символ (побайтово) в два шестнадцатеричных символа, затем объединяет все преобразованные символы в результирующую строку.
Синтаксис
HEX(<expr>)
Параметры
| Параметр | Описание |
|---|---|
<expr> | Входной параметр: число типа BIGINT или строка типа VARCHAR |
Возвращаемое значение
Возвращает шестнадцатеричное представление входного параметра в виде значения типа VARCHAR.
Правила преобразования:
- Числовые входные данные: преобразуются в соответствующее шестнадцатеричное значение (в пределах диапазона BIGINT)
- Строковые входные данные: каждый байт преобразуется в два шестнадцатеричных символа верхнего регистра
- Отрицательные числа преобразуются с использованием двоичного представления в дополнительном коде
Особые случаи:
- Если параметр равен NULL, возвращается NULL
- Число 0 преобразуется в '0'
- Пустая строка преобразуется в пустую строку
- Отрицательные числа преобразуются в шестнадцатеричное представление 64-битного дополнительного кода
Примеры
- Простое преобразование чисел
SELECT HEX(12), HEX(-1);
+---------+------------------+
| HEX(12) | HEX(-1) |
+---------+------------------+
| C | FFFFFFFFFFFFFFFF |
+---------+------------------+
- Преобразование строк
SELECT HEX('1'), HEX('@'), HEX('12');
+----------+----------+-----------+
| HEX('1') | HEX('@') | HEX('12') |
+----------+----------+-----------+
| 31 | 40 | 3132 |
+----------+----------+-----------+
- Преобразование больших целых чисел
SELECT HEX(255), HEX(65535), HEX(16777215);
+----------+------------+----------------+
| HEX(255) | HEX(65535) | HEX(16777215) |
+----------+------------+----------------+
| FF | FFFF | FFFFFF |
+----------+------------+----------------+
- Обработка значения NULL
SELECT HEX(NULL);
+-----------+
| HEX(NULL) |
+-----------+
| NULL |
+-----------+
- Ноль и пустая строка
SELECT HEX(0), HEX('');
+--------+--------+
| HEX(0) | HEX('') |
+--------+--------+
| 0 | |
+--------+--------+