sql >> Database >  >> RDS >> Sqlserver

MS SQL-server - converteer HEX-tekenreeks naar geheel getal

Bedankt voor het geven van wat meer expliciete voorbeelden. Voor zover ik kan zien aan de hand van de documentatie en Googlen, is dit niet mogelijk in MSSQL 2005 zonder een UDF of andere procedurele code. In MSSQL 2008 is de stijl van de functie CONVERT() parameter ondersteunt nu binaire gegevens, dus je kunt het direct als volgt doen:

select convert(int, convert(varbinary, '0x89', 1))

In eerdere versies zijn uw keuzes:

  • Gebruik een UDF (TSQL of CLR; CLR is hier misschien makkelijker voor)
  • Wikkel de SELECT in een opgeslagen procedure (maar je hebt er waarschijnlijk nog steeds het equivalent van een UDF in)
  • Converteer het in de frontend van de applicatie
  • Upgrade naar MSSQL 2008

Als het converteren van de gegevens alleen voor weergavedoeleinden is, is de toepassing misschien de gemakkelijkste oplossing:gegevensformattering hoort daar meestal toch thuis. Als je het in een query moet doen, dan is een UDF het gemakkelijkst, maar de prestaties zijn misschien niet geweldig (ik weet dat je zei dat je liever geen UDF gebruikte, maar het is niet duidelijk waarom). Ik vermoed dat upgraden naar MSSQL 2008 alleen hiervoor waarschijnlijk niet realistisch is.

Ten slotte, ter informatie, het versienummer dat u hebt toegevoegd, is de versie van Management Studio, niet het versienummer van uw server. Om dat te krijgen, ondervraag je de server zelf met select @@version of select serverproperty('ProductVersion') .




  1. SQL - som van enkele rijen, minus som van andere rijen

  2. Tabel 'mysql.user' bestaat niet:ERROR

  3. MayBeSQL komt naar Microsoft Access!

  4. Hoe een lokale MySQL-database te implementeren in Heroku