Diese Antwort auf ganzzahlige was aussieht wie die gleiche Frage:MS SQL Server - konvertieren HEX String
Convert integer to hex and hex to integer
..does für mich nicht.
Ich bin nicht in der Lage, zu einem Integer mit MS SQL Server 2005 CAST oder CONVERT zu einer Ganzzahl zu gehen. Fehle ich etwas Triviales? Ich habe ausgiebig gesucht, und das Beste, was ich finden kann, sind langatmige Benutzerfunktionen, die von einem hexadezimalen Zeichenfolgenwert zu etwas gehen, das wie ein dezimaler int aussieht. Sicher gibt es eine einfache Möglichkeit, dies direkt in einer Abfrage mit eingebauten Funktionen zu tun, anstatt eine Benutzerfunktion zu schreiben?
Dank
bearbeiten Beispiele umfassen:
select convert (INT, 0x89)
funktioniert wie erwartet, aber
select convert (INT " 0x '+ Teilstring (msg, 66, 2)) von etwas
bringt mich:
"Fehler bei der Konvertierung, wenn der varchar Wert '0x89' in dem Datentyp int zu konvertieren."
eine zusätzliche explizite CAST:
select convert (INT, CAST ('0x89' AS VARBINARY))
ausgeführt wird, liefert aber 813185081.
Substituieren 'Int', 'Dezimal' usw. für 'Varbinary' führt zu einem Fehler. Im Allgemeinen werden Zeichenfolgen, die numerisch erscheinen, bei Bedarf als numerisch interpretiert, in diesem Fall jedoch nicht, und es scheint keine CAST zu geben, die HEX erkennt. Ich würde gerne denken, dass es etwas Einfaches und Offensichtliches gibt, und ich habe es gerade verpasst.
Microsoft SQL Server Management Studio Express 9.00.3042.00
Microsoft SQL Server 2005 - 9.00.3080.00 (Intel X86) 6. September 2009 01.43.32 Copyright (c) 1988-2005 Microsoft Corporation Express Edition mit Advanced Services auf Windows NT 5.1 (Build 2600: Service Pack 3)
Fazit: ich möchte einen hex-String nehmen, die ein Wert in einer Tabelle, und es als Teil eines Abfrageergebnis angezeigt werden als eine Dezimalzahl, die nur systemdefinierte Funktionen verwendet, keine UDF.
Erhalten Sie einen bestimmten Fehler oder unerwartete Ergebnisse? Beispiele wären hilfreich. – LittleBobbyTables
Was bedeutet "funktioniert nicht"? CONVERT() ist eine eingebaute Funktion und es ist extrem unwahrscheinlich, dass es nicht funktioniert. Also posten Sie bitte Ihre MSSQL-Version und -Edition sowie die Ergebnisse der Ausführung der beiden SELECT-Abfragen aus der Antwort, mit der Sie verbunden sind: SELECT CONVERT (VARBINARY (8), 16777215) und SELECT CONVERT (INT, 0xFFFFFF) – Pondlife
Haben Sie das gesehen? Schauen Sie sich die Kommentare ... http://blog.sqlauthority.com/2010/02/01/sql-server-question-how-to-convert-hex-to-decimal/ –