sql >> Database >  >> RDS >> Sqlserver

SQL:Een geheel getal converteren naar een hex-tekenreeks?

Er is een ingebouwde functie om hex strings te genereren van binaire waarden

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

Je hebt binary(3) nodig om de juiste lengte van de uitvoerstring te garanderen
Dit is verkeerd. Je krijgt 4 hexadecimale cijfers omdat 0 en 255 hier 4 byte zijn int waarden

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

Update oktober 2017:

De conversie is nu ingebouwd naar SQL Server (sinds 2008!!), dus we kunnen gewoon CONVERT

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


  1. PDO en sessies gebruiken om een ​​inlogformulier te maken

  2. Overschakelen/terugschakelen in Slony-I tijdens het upgraden van PostgreSQL-hoofdversies 8.4.x/9.3.x

  3. PostgreSQL multidimensionale arrays

  4. Een tekenreeks toevoegen aan de where-clausule in APEX Interactive Report SQL