Има вградена функция за генериране на шестнадесетични низове от двоични стойности
SELECT
'#' + sys.fn_varbintohexstr(CONVERT(BINARY(3), 0)),
'#' + sys.fn_varbintohexstr(CONVERT(BINARY(3), 255))
Имате нужда от binary(3)
за да осигурите правилната дължина на изходния низ
Това е грешно. Получавате 4 шестнадесетични цифри, защото 0 и 255 тук са 4 байта int
стойности
SELECT
'#' + sys.fn_varbintohexstr(CONVERT(varBINARY(8), 0)),
'#' + sys.fn_varbintohexstr(CONVERT(varBINARY(8), 255))
Актуализация от октомври 2017 г.:
Преобразуването вече е вградено в SQL Server (от 2008 г.!!), така че можем просто да използваме CONVERT
SELECT '#' + CONVERT(char(6), CONVERT(BINARY(3), 2570841), 2)