Es gibt eine eingebaute Funktion, um hexadezimale Strings zu generieren aus binären Werten
SELECT
'#' + sys.fn_varbintohexstr(CONVERT(BINARY(3), 0)),
'#' + sys.fn_varbintohexstr(CONVERT(BINARY(3), 255))
Sie benötigen binary(3)
um die korrekte Länge des Ausgabestrings sicherzustellen
Das ist falsch. Sie erhalten 4 Hex-Ziffern, weil 0 und 255 hier 4 Byte int
sind Werte
SELECT
'#' + sys.fn_varbintohexstr(CONVERT(varBINARY(8), 0)),
'#' + sys.fn_varbintohexstr(CONVERT(varBINARY(8), 255))
Aktualisierung vom Okt. 2017:
Die Konvertierung ist jetzt in SQL Server integriert (seit 2008!!), sodass wir einfach CONVERT
verwenden könnenSELECT '#' + CONVERT(char(6), CONVERT(BINARY(3), 2570841), 2)