Ето 3 начина за преобразуване от десетичен в шестнадесетичен в SQL Server.
Пример 1 – Функцията CONVERT()
Първо, ще използваме CONVERT()
функция. Това ви позволява да конвертирате между типове данни в SQL Server.
Ето пример за използване на тази функция за преобразуване на десетична стойност в шестнадесетична:
SELECT CONVERT(VARBINARY(8), 64683) Result;
Резултат:
+------------+ | Result | |------------| | 0x0000FCAB | +------------+
В този случай преобразуваме десетичната стойност 64683
до VARBINARY(8) .
Пример 2 – Функцията CAST()
Като алтернатива можем да използваме CAST()
функция, за да направи същото като предишния пример:
SELECT CAST(64683 AS VARBINARY(8)) Result;
Резултат:
+------------+ | Result | |------------| | 0x0000FCAB | +------------+
Обърнете внимание, че CAST()
и CONVERT()
използвайте малко по-различен синтаксис. В случай на CAST()
стойността, която трябва да бъде прехвърлена, е на първо място, докато с CONVERT()
е обратното .
Пример 3 – Функцията FORMAT()
Можем също да използваме FORMAT()
функция за форматиране на десетичната стойност като шестнадесетичен низ.
SELECT FORMAT(64683, 'X') Result;
Резултат:
+----------+ | Result | |----------| | FCAB | +----------+
X
Аргументът е това, което указва, че полученият формат трябва да бъде шестнадесетичен.
Можете също да използвате малки букви x
за да посочите, че резултатът използва малки букви:
SELECT FORMAT(64683, 'x') Result;
Резултат:
+----------+ | Result | |----------| | fcab | +----------+
Връщаната стойност на тази функция е nvarchar . Това е различно от другите две функции, които връщат стойността като двоична константа (можете да разберете по 0x
префикс).