Esta respuesta a lo que parece ser la misma pregunta:MS SQL Server - Convierte la cadena HEX a entero
Convert integer to hex and hex to integer
..does no funcionan para mí.
No puedo ir a una cadena HEX a un número entero utilizando MS SQL server 2005 CAST o CONVERT. ¿Me estoy perdiendo algo trivial? He buscado mucho, y lo mejor que puedo encontrar son funciones de usuario prolijas para pasar de un valor de cadena hexadecimal a algo que se parece a un decimal int. Seguramente hay una manera simple de hacer esto directamente en una consulta que utiliza funciones integradas en lugar de escribir una función de usuario.
Gracias
Editar para incluir ejemplos:
select convert (int, 0x89)
funciona como se esperaba, pero
select convert (int, ' 0x '+ subcadena (msg, 66, 2)) de alguna tabla
me obtiene:
"Error de conversión al convertir el valor varchar '0x89' a tipo de datos int."
una conversión explícita extra:
select convert (int, CAST ('0x89' AS VARBINARY))
ejecuta, pero devuelve 813185081.
Sustituyendo 'Int', 'Decimal', etc. para 'Varbinary' da como resultado un error. En general, las cadenas que parecen ser numéricas se interpretan como numéricas si es necesario, pero no en este caso, y no parece haber un CAST que reconozca HEX. Me gustaría pensar que hay algo simple y obvio, y me lo he perdido.
Microsoft Management Studio de SQL Server Express 9.00.3042.00
Microsoft SQL Server 2005 - 9.00.3080.00 (Intel X86) sep 6 2009 01:43:32 Derechos de autor (c) 1988-2005 Microsoft Corporation Express Edition con servicios avanzados en Windows NT 5.1 (Build 2600: Service Pack 3)
En resumen: quiero tomar una cadena hexadecimal que es un valor en una tabla, y mostrarla como parte de un resultado de la consulta como un entero decimal, usando solo funciones definidas por el sistema, no un UDF.
¿Recibirá un error específico o resultados inesperados? Los ejemplos serían útiles. – LittleBobbyTables
¿Qué significa "no funciona"? CONVERT() es una función incorporada y es muy poco probable que no funcione. Por lo tanto, publique su versión y edición MSSQL, más los resultados de ejecutar las dos consultas SELECT de la respuesta a la que vinculó: SELECCIONAR CONVERTIR (VARBINARIO (8), 16777215) y SELECCIONAR CONVERTIR (INT, 0xFFFFFF) – Pondlife
¿Ha visto esto? Mira los comentarios ... http://blog.sqlauthority.com/2010/02/01/sql-server-question-how-to-convert-hex-to-decimal/ –