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

SQL:Převést celé číslo na hexadecimální řetězec?

K dispozici je vestavěná funkce pro generování hexadecimálních řetězců z binárních hodnot

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

Potřebujete binary(3) abyste zajistili správnou délku výstupního řetězce
To je špatně. Získáte 4 hexadecimální číslice, protože 0 a 255 zde jsou 4 bajty int hodnoty

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

Aktualizace z října 2017:

Konverze je nyní vestavěna do SQL Serveru (od roku 2008!!), takže můžeme jednoduše použít CONVERT

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


  1. Problém s výstupním parametrem serveru SQL Server

  2. Co dělat s nulovými hodnotami při modelování a normalizaci?

  3. Jak importovat existující soubory *.sql v PostgreSQL 8.4?

  4. Jak získat komentáře ke sloupcům z SQL