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ídaIsso 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)