Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Converti intero in esadecimale e esadecimale in intero

Converti INT in esadecimale:

SELECT CONVERT(VARBINARY(8), 16777215)

Converti esadecimale in INT:

SELECT CONVERT(INT, 0xFFFFFF)

Aggiornamento 16-03-2015

L'esempio sopra ha la limitazione che funziona solo quando il valore HEX è dato come un intero letterale. Per completezza, se il valore da convertire è una stringa esadecimale (come trovata in una colonna varchar) usa:

-- 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))

Nota: La stringa deve contenere un numero pari di cifre esadecimali. Un numero dispari di cifre produrrà un errore.

Maggiori dettagli sono disponibili nella sezione "Stili binari" di CAST e CONVERT (Transact-SQL). Credo che sia necessario SQL Server 2008 o versioni successive.