sql >> Databáze >  >> RDS >> Sqlserver

Převeďte celé číslo na hex a hex na celé číslo

Převést INT na hex:

SELECT CONVERT(VARBINARY(8), 16777215)

Převést hex na INT:

SELECT CONVERT(INT, 0xFFFFFF)

Aktualizace 2015-03-16

Výše uvedený příklad má omezení, že funguje pouze tehdy, když je hodnota HEX uvedena jako celočíselný literál. Pro úplnost, pokud je hodnota, kterou chcete převést, hexadecimální řetězec (např. nalezený ve sloupci varchar), použijte:

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

Poznámka: Řetězec musí obsahovat sudý počet hexadecimálních číslic. Lichý počet číslic způsobí chybu.

Více podrobností lze nalézt v sekci "Binární styly" CAST a CONVERT (Transact-SQL). Domnívám se, že je vyžadován SQL Server 2008 nebo novější.



  1. Jaké je minimální nastavení potřebné k nasazení aplikace .NET s klientem Oracle 11?

  2. PostgreSQL INSERT ON CONFLICT UPDATE (upsert) použijte všechny vyloučené hodnoty

  3. Jak počítat dny kromě neděle mezi dvěma daty v Postgres?

  4. Zábava s kompresí (columnstore) na velmi velkém stole – část 1