Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Convertir entier en hexadécimal et hexadécimal en entier

Convertir INT en hexadécimal :

SELECT CONVERT(VARBINARY(8), 16777215)

Convertir hexadécimal en INT :

SELECT CONVERT(INT, 0xFFFFFF)

Mise à jour 2015-03-16

L'exemple ci-dessus a la limitation qu'il ne fonctionne que lorsque la valeur HEX est donnée sous la forme d'un littéral entier. Pour être complet, si la valeur à convertir est une chaîne hexadécimale (telle que trouvée dans une colonne varchar), utilisez :

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

Remarque : La chaîne doit contenir un nombre pair de chiffres hexadécimaux. Un nombre impair de chiffres produira une erreur.

Plus de détails peuvent être trouvés dans la section "Styles binaires" de CAST et CONVERT (Transact-SQL). Je pense que SQL Server 2008 ou version ultérieure est requis.