Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Converter inteiro em hexadecimal e hexadecimal em inteiro


Converter INT para hexadecimal:
SELECT CONVERT(VARBINARY(8), 16777215)

Converter hexadecimal para INT:
SELECT CONVERT(INT, 0xFFFFFF)

Atualização de 16/03/2015


O exemplo acima tem a limitação de funcionar apenas quando o valor HEX é fornecido como um literal inteiro. Para completar, se o valor a ser convertido for uma string hexadecimal (como encontrada em uma coluna 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))

Observação: A string deve conter um número par de dígitos hexadecimais. Um número ímpar de dígitos produzirá um erro.

Mais detalhes podem ser encontrados na seção "Estilos binários" de CAST e CONVERT (Transact-SQL). Acredito que o SQL Server 2008 ou posterior seja necessário.