Es fundamental entender el código de forma correcta antes de utilizarlo a tu trabajo si tquieres aportar algo puedes decirlo en los comentarios.
Solución:
Convertir INT a hexadecimal:
SELECT CONVERT(VARBINARY(8), 16777215)
Convertir hexadecimal a INT:
SELECT CONVERT(INT, 0xFFFFFF)
Actualización 2015-03-16
El ejemplo anterior tiene la limitación de que solo funciona cuando el valor HEX se proporciona como un literal entero. Para completar, si el valor a convertir es un hexadecimal string (como se encuentra en una columna varchar) use:
-- If the '0x' marker is present:
SELECT CONVERT(INT, CONVERT(VARBINARY, '0x1FFFFF', 1))
-- If the '0x' marker is NOT present:
SELECT CONVERT(INT, CONVERT(VARBINARY, '1FFFFF', 2))
Nota: los string debe contener un número par de dígitos hexadecimales. Un número impar de dígitos producirá un error.
Se pueden encontrar más detalles en la sección “Estilos binarios” de CAST y CONVERT (Transact-SQL). Creo que se requiere SQL Server 2008 o posterior.
En realidad, la función integrada se llama master.dbo.fn_varbintohexstr.
Así por ejemplo:
SELECT 100, master.dbo.fn_varbintohexstr(100)
Te dio
100 0x00000064
SQL Server equivalentes a Excel string-funciones basadas en DEC2HEX, HEX2DEC:
--Convert INT to hex string:
PRINT CONVERT(VARCHAR(8),CONVERT(VARBINARY(4), 16777215),2) --DEC2HEX
--Convert hex string to INT:
PRINT CONVERT(INT,CONVERT(VARBINARY(4),'00FFFFFF',2)) --HEX2DEC
Valoraciones y comentarios
Si para ti ha resultado provechoso nuestro artículo, agradeceríamos que lo compartas con el resto programadores así contrubuyes a dar difusión a nuestro contenido.