SQL - Problema con uso de CONVERT

 
Vista:

Problema con uso de CONVERT

Publicado por Douglas Pérez (9 intervenciones) el 17/08/2004 19:23:26
Buenas tardes,

Estoy ejecutando la siguiente conversión de datos en Query Analyzer:

declare @valor decimal(18,2)
set @valor = (SELECT CONVERT(DECIMAL(18,2), '19.000,00'))

y me da error este conversión:

Error converting data type varchar to numeric.

En la documentación de SQL Server me dice que la conversión entre esos dos tipos de datos debe ser implícita.

¿Qué debo hacer para que me convierta correctamente ?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con uso de CONVERT

Publicado por Isaías (5072 intervenciones) el 17/08/2004 23:24:05
Su "numero", no es numero, ejecute este script para checarlo:

select isnumeric('19.000,00')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con uso de CONVERT

Publicado por Douglas Pérez (9 intervenciones) el 18/08/2004 15:22:55
Fíjate que revisé el argumento que deseo evaluar con la función isnumeric(argumento) y me devolvió que sí es numérico, es decir, coloqué:

select isnumeric(detallevalor) as tipo from tabla

siendo el campo detallevalor de tipo varchar me devolvió que el cotenido sí es numérico porque el contenido son cadenas numéricas.

Ahora, el dilema se presenta cuando al realizar una operación numérica me da error, por ejemplo trato de hacer esto y me da error de conversión:

select (convert(decimal(18,2),detallevalor) + 2.11) as suma from tabla

me debería sumar 2.11 al valor del campo y me da error.

Como la documentación de SQL Server dice que la conversión desde varchar hasta decimal tiene que ser implícita (que no requiere el uso de CONVERT ni CAST), cuando lo hago de forma implícita tampoco lo resuelve. Por ejemplo:

select (detallevalor + 2.11) as suma from tabla

Así de esta última forma tampoco lo resuelve.

La verdad es todo un problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con uso de CONVERT

Publicado por Isaías Islas (5072 intervenciones) el 18/08/2004 16:38:49
Amigo, yo ejecute el ISNUMERIC() con la cadena que enviaste y NO es numerica.

Puedes ejecutar esto:

SELECT * FROM TABLA WHERE ISNUMERIC(MYCOL) = 0

Esto debe darte TODAS las columnas que NO son numericas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con uso de CONVERT

Publicado por Rodrigo Carrasco (17 intervenciones) el 18/08/2004 17:45:27
¿No será un problema con los signos de puntuación de sus máquinas?. Es decir, puede que la configuración regional sea diferente y el signo punto (.) con el signo coma (,) no estén cumpliendo la misma función.
Es lo único que se me ocurre. Revisa si 2.11 es un número porque si la variable "detallevalor" está bien, entonces a lo mejor el segundo argumento debiera ser 2,11 (con coma en vez de punto)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con uso de CONVERT

Publicado por Isaías (5072 intervenciones) el 18/08/2004 18:31:52
Hola Rodrigo

Creo que a SQL, no le interesa la configuración regional de tu pc, para SQL el "texto" 1.000,20.........Nunca sera un numero, en todo caso, deberia ser 1,000.20.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar