Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL:Konvertieren Sie eine Ganzzahl in eine Hex-Zeichenfolge?

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önnen
SELECT '#' + CONVERT(char(6), CONVERT(BINARY(3), 2570841), 2)