Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Konwertuj liczbę całkowitą na szesnastkową i szesnastkową na liczbę całkowitą

Konwertuj INT na szesnastkowe:

SELECT CONVERT(VARBINARY(8), 16777215)

Zamień szesnastkę na INT:

SELECT CONVERT(INT, 0xFFFFFF)

Aktualizacja 16.03.2015

Powyższy przykład ma ograniczenie, że działa tylko wtedy, gdy wartość HEX jest podana jako literał całkowity. Dla kompletności, jeśli wartość do przekonwertowania jest ciągiem szesnastkowym (takim jak w kolumnie varchar), użyj:

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

Uwaga: Ciąg musi zawierać parzystą liczbę cyfr szesnastkowych. Nieparzysta liczba cyfr spowoduje błąd.

Więcej szczegółów można znaleźć w sekcji "Style binarne" CAST i CONVERT (Transact-SQL). Uważam, że wymagany jest SQL Server 2008 lub nowszy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak podzielić ciąg po określonym znaku w SQL Server i zaktualizować tę wartość do określonej kolumny?

  2. SQL Server 2005 Używanie DateAdd do dodawania dnia do daty

  3. Łączenie aplikacji działających w systemie Linux z usługami relacyjnej bazy danych Amazon (RDS) dla SQL Server

  4. SQL Server 2016:Projektant zapytań

  5. Czy możesz mieć logikę „jeśli-to-inaczej” w SQL?