sql >> Base de Datos >  >> RDS >> Sqlserver

Convertir entero a hexadecimal y hexadecimal a entero

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 una cadena hexadecimal (como la que 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: La cadena debe contener un número par de dígitos hexadecimales. Un número impar de dígitos generará 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.