sql >> Databasteknik >  >> RDS >> Sqlserver

SQL:Konvertera ett heltal till en hexadecimal sträng?

Det finns en inbyggd funktion för att generera hex strängar från binära värden

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

Du behöver binary(3) för att säkerställa rätt längd på utdatasträngen
Detta är fel. Du får 4 hexadecimala siffror eftersom 0 och 255 här är 4 byte int värden

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

Okt 2017 Uppdatering:

Konverteringen är nu inbyggd i SQL Server (sedan 2008!!) så vi kan helt enkelt använda CONVERT

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


  1. lägger till 30 minuter till datetime php/mysql

  2. Hur använder man vitlistor och preparerade uttalanden med Postgresql i php?

  3. Kör endast en utlösare när vissa kolumner är uppdaterade (SQL-server)

  4. Hur SPACE() fungerar i MariaDB