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

SQL:Przekonwertować liczbę całkowitą na ciąg szesnastkowy?

Istnieje wbudowana funkcja do generowania szesnastkowych ciągów z wartości binarnych

SELECT
    '#' + sys.fn_varbintohexstr(CONVERT(BINARY(3), 0)),
    '#' + sys.fn_varbintohexstr(CONVERT(BINARY(3), 255))

Potrzebujesz binary(3) aby zapewnić prawidłową długość ciągu wyjściowego
To jest nieprawidłowe. Otrzymasz 4 cyfry szesnastkowe, ponieważ 0 i 255 to 4 bajty int wartości

SELECT
    '#' + sys.fn_varbintohexstr(CONVERT(varBINARY(8), 0)),
    '#' + sys.fn_varbintohexstr(CONVERT(varBINARY(8), 255))

Aktualizacja z października 2017 r.:

Konwersja jest teraz wbudowana w SQL Server (od 2008!!), więc możemy po prostu użyć CONVERT

SELECT '#' + CONVERT(char(6), CONVERT(BINARY(3), 2570841), 2)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Filtrowanie zapytań SQL według listy parametrów

  2. Przyrost tożsamości kolumny SQL Server 2012 skacze z 6 do 1000+ przy siódmym wpisie

  3. Oblicz skrót MD5 ciągu UTF8

  4. Uzyskaj listę unikalnych ograniczeń i indeksów w bazie danych

  5. Nieprawidłowa składnia w pobliżu modift sql comm 'OFFSET' od 2012 do 2008