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

Wandeln Sie Integer in Hex und Hex in Integer um

Wandeln Sie INT in Hex um:

SELECT CONVERT(VARBINARY(8), 16777215)

Hex in INT umwandeln:

SELECT CONVERT(INT, 0xFFFFFF)

Aktualisierung 2015-03-16

Das obige Beispiel hat die Einschränkung, dass es nur funktioniert, wenn der HEX-Wert als Integer-Literal angegeben wird. Der Vollständigkeit halber, wenn der zu konvertierende Wert eine hexadezimale Zeichenfolge ist (wie sie beispielsweise in einer varchar-Spalte gefunden wird), verwenden Sie:

-- If the '0x' marker is present:
SELECT CONVERT(INT, CONVERT(VARBINARY, '0x1FFFFF', 1))

-- If the '0x' marker is NOT present:
SELECT CONVERT(INT, CONVERT(VARBINARY, '1FFFFF', 2))

Hinweis: Die Zeichenfolge muss eine gerade Anzahl von Hexadezimalstellen enthalten. Eine ungerade Anzahl von Ziffern führt zu einem Fehler.

Weitere Einzelheiten finden Sie im Abschnitt "Binärstile" von CAST und CONVERT (Transact-SQL). Ich glaube, dass SQL Server 2008 oder höher erforderlich ist.