2011-12-29 493 views
15

¿Es posible cambiar la coma decimal de "." (punto) a otro carácter (coma) en la salida de MySQL? No quiero usar funciones como FORMAT, solo quiero utilizar todas las consultas que normalmente uso sin ninguna modificación. Estoy buscando una configuración (de alguna variable, configuración regional, etc.). Traté de buscar el manual pero sin éxito.Cambiar el separador decimal en MySQL

+1

Realmente no entiendo esto - ¿qué quiere decir con "salida MySQL"? ¿Mostrando un resultado de consulta a través del cliente de línea de comando mysql? Los valores numéricos no tienen un separador decimal definido por MySQL, sino que están definidos por el lenguaje y el marco utilizado para darles salida para uso humano. –

+1

@MattH, quiero decir cualquier salida de cliente (consola, PHP, lo que sea). El problema en PHP es que siempre se obtiene una cadena, incluso si el campo de la base de datos es de tipo 'double'. Entonces, no hay una solución genérica obvia en el lado de PHP, así que estaba buscando en MySQL. – TMS

Respuesta

19

No, no puedes. Ese es el estándar SQL y MySQL lo cumple (en ese punto al menos).

El problema no es realmente con la salida (como usted menciona, hay varias funciones FORMAT en la mayoría de los DBMS) pero con INSERT. Si pudiera usar la coma ,, por ejemplo, como punto decimal (que es común en otras configuraciones regionales) que también se usa como separador de valores, las inserciones se volverían ambiguas. Véase mi respuesta en la pregunta: insert-non-english-decimal-points-in-mysql

+0

ypercube, gracias. ¿Cuál es el estándar SQL? La sintaxis de consulta SQL, o el formato de salida, o ambos? Solo necesito la salida, de modo que si hago 'select 1/3', sale' 0,33333'. – TMS

+0

No estoy seguro de si el formato de salida se especifica en los estándares SQL o si se omite y puede ser diferente para diferentes métodos de conexión/frameworks. Pero no sé de ninguna manera en MySQL. –

21

Consejo para las exportaciones CSV: SELECT REPLACE(CAST(prijs_incl AS CHAR), '.', ',') le dará entrada que puede ser utilizado como campos numéricos en excelsheets europeos.

+15

Útil, aunque podría usar 'SELECT REPLACE (prijs_incl, '.', ',')' Como la conversión de cadena es automática, consulte [mysql doc] (http://dev.mysql.com/doc/refman/5.0 /en/cast-functions.html#function_cast) – vicenteherrera

Cuestiones relacionadas