Det finns en inbyggd funktion för att generera hex strängar från binära värden
SELECT
'#' + sys.fn_varbintohexstr(CONVERT(BINARY(3), 0)),
'#' + sys.fn_varbintohexstr(CONVERT(BINARY(3), 255))
Du behöver binary(3)
för att säkerställa rätt längd på utdatasträngen
Detta är fel. Du får 4 hexadecimala siffror eftersom 0 och 255 här är 4 byte int
värden
SELECT
'#' + sys.fn_varbintohexstr(CONVERT(varBINARY(8), 0)),
'#' + sys.fn_varbintohexstr(CONVERT(varBINARY(8), 255))
Okt 2017 Uppdatering:
Konverteringen är nu inbyggd i SQL Server (sedan 2008!!) så vi kan helt enkelt använda CONVERT
SELECT '#' + CONVERT(char(6), CONVERT(BINARY(3), 2570841), 2)