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

SQL:Converter um inteiro em uma string hexadecimal?


Existe uma função embutida para gerar strings hexadecimais de valores binários
SELECT
    '#' + sys.fn_varbintohexstr(CONVERT(BINARY(3), 0)),
    '#' + sys.fn_varbintohexstr(CONVERT(BINARY(3), 255))

Você precisa de binary(3) para garantir o comprimento correto da string de saída
Isso está errado. Você obtém 4 dígitos hexadecimais porque 0 e 255 aqui são 4 bytes int valores
SELECT
    '#' + sys.fn_varbintohexstr(CONVERT(varBINARY(8), 0)),
    '#' + sys.fn_varbintohexstr(CONVERT(varBINARY(8), 255))

Atualização de outubro de 2017:

A conversão agora está incorporada ao SQL Server (desde 2008!!)
SELECT '#' + CONVERT(char(6), CONVERT(BINARY(3), 2570841), 2)