sql >> Databasteknik >  >> RDS >> Sqlserver

Konvertera heltal till hex och hex till heltal

Konvertera INT till hex:

SELECT CONVERT(VARBINARY(8), 16777215)

Konvertera hex till INT:

SELECT CONVERT(INT, 0xFFFFFF)

Uppdatering 2015-03-16

Ovanstående exempel har den begränsningen att det bara fungerar när HEX-värdet anges som ett heltal. För fullständighetens skull, om värdet som ska konverteras är en hexadecimal sträng (som finns i en varchar-kolumn), använd:

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

Obs! Strängen måste innehålla ett jämnt antal hexadecimala siffror. Ett udda antal siffror ger ett fel.

Mer information finns i avsnittet "Binära stilar" i CAST och CONVERT (Transact-SQL). Jag tror att SQL Server 2008 eller senare krävs.



  1. Få århundradet från ett datum i PostgreSQL

  2. Varför behövs UTFÖR OMEDELBART här?

  3. Tips för att leverera MySQL-databasprestanda - del två

  4. Vilken är den rekommenderade batchstorleken för SqlBulkCopy?