Преобразование чисел в шестнадцатеричные в SQL Server

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для преобразования целого числа в шестнадцатеричное представление, используйте функцию CONVERT(VARCHAR(8), ВашеЧисло, 2). Для обратной операции — преобразования шестнадцатеричного числа в целое, воспользуйтесь CONVERT(INT, ВашеШестнадцатеричноеЧисло).

SQL
Скопировать код
-- Преобразование целого числа в шестнадцатеричное (вместо 255 укажите нужное число)
SELECT CONVERT(VARCHAR(8), 255, 2) AS HexValue;

-- Преобразование шестнадцатеричного числа в целое (вместо 'FF' укажите наиболее подходящее значение)
SELECT CONVERT(INT, 0xFF) AS IntValue;

Эти методы применимы для серверов SQL Server 2008 и более новых версий. В других системах могут использоваться альтернативные способы преобразования.

Кинга Идем в IT: пошаговый план для смены профессии

Особенности функции CONVERT в SQL

Работа с шестнадцатеричными числами в строках, начинающихся на '0x'

Для преобразования шестнадцатеричного числа в строке, начинающейся с '0x', используйте стиль 1 при работе с функцией CONVERT. SQL Server будет учитывать этот формат.

SQL
Скопировать код
-- Преобразование шестнадцатеричного числа в строке, начинающейся на '0x', в целое
SELECT CONVERT(INT, CONVERT(VARBINARY, '0x1FFFFF', 1)) AS IntValue;
Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Преобразование шестнадцатеричных строк без префикса '0x'

При отсутствии префикса 0x выберите стиль 2. SQL Server предполагает наличие парных последовательностей цифр.

SQL
Скопировать код
-- Преобразование шестнадцатеричного числа без префикса '0x' в целое
SELECT CONVERT(INT, CONVERT(VARBINARY, '1FFFFF', 2)) AS IntValue;

Использование функции FORMAT для форматирования в шестнадцатеричное представление

С появлением SQL Server 2012 функция FORMAT стала доступна для удобного форматирования чисел.

SQL
Скопировать код
-- Преобразование целого числа в шестнадцатеричное представление через FORMAT
SELECT FORMAT(255, 'X') AS HexValue; -- Вернёт в результате 'FF'

Визуализация

Преобразование целых чисел в шестнадцатеричное представление и обратно можно представить как путешествие:

Markdown
Скопировать код
Проспект Целых Чисел (🚦 42 🚗 ➡️ 🌟 0x2A)
Markdown
Скопировать код
Шоссе Шестнадцатеричных Чисел (🌟 0x2A 🚗 ⬅️ 🚦 42)
Markdown
Скопировать код
🚦: Светофор = момент преобразования
🚗: Машина = процесс переноса данных
🌟: Звезда = шестнадцатеричное представление числа в его системе счисления

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

Продвинутые методы и предостережения

Использование функции fn_varbintohexstr

В некоторых более старых системах есть функция master.dbo.fn_varbintohexstr, однако помните, что она может стать устаревшей.

SQL
Скопировать код
-- Преобразование целого числа в шестнадцатеричное представление с помощью устаревшей функции
SELECT master.dbo.fn_varbintohexstr(255) AS HexValue;

Различия между SQL Server и Excel

Сравнивая с Excel, стоит понимать: в SQL Server требуется иной, более гибкий подход.

Важность правильного использования типов данных

Тип данных VARBINARY идеально подходит для шестнадцатеричного представления, а VARCHAR или INT — для переведенных обратно значений. Важно соблюдать согласованность типов данных в вашем контексте.

Берегите четность

Убедитесь, что ваши шестнадцатеричные строки содержат четное число символов. В противном случае может возникнуть ошибка из-за ограничений SQL Server.

Полезные материалы

  1. PostgreSQL: Documentation: 9.8. Функции форматирования типов данных — официальная документация о форматировании числовых типов данных в PostgreSQL.
  2. MySQL :: MySQL 8.0 Справочное руководство :: 12.8 Функции и операторы для работы со строками — справочник по функции HEX в MySQL.
  3. TO_CHAR (datetime) — часть документации Oracle, посвященная функциям преобразования данных.
  4. HEX – База знаний MariaDB — статья в базе знаний MariaDB о функции HEX.
  5. FORMAT (Transact-SQL) – SQL Server | Microsoft Learn — руководство по использованию функции FORMAT в SQL Server.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какую функцию следует использовать для преобразования целого числа в шестнадцатеричное представление в SQL Server?
1 / 5