2011-12-15 16 views
6

Estoy tratando de usar el formato dentro de una consulta SQL para adaptarme a un paquete de informes. Tengo números que debo mostrar como moneda con dos decimales, así que estoy usando el comando de formatear para hacer eso. El problema es que el formato también pone en un coma para separar miles y la función de suma paquete de informes no puede manejar esta manera trata el valor numérico con formato de texto y no lo agrega en la consulta utiliza: -.Consulta MYSQL - Usar formato pero no comas

SELECT customers.name AS "customers name", FORMAT(contracts.charge,2) AS "contracts charge" 
FROM customers 
ORDER BY customers.name 

(la consulta real es mucho más compleja, pero esta es la parte pertinente)

Para explicar con más detalle: -

Si el valor numérico es la salida formateada 123.1 123.10 es que funciona. Si el valor numérico es 1234,1 la salida formateada es 1,234.10 cual NO

Tengo que encontrar una manera de convencer a la consulta a la salida 1234,10

Muchas gracias

Respuesta

14

Se podía:

REPLACE(FORMAT(contracts.charge, 2), ',', '') 
3

Una posible solución sería reemplazar la coma después de que el formato:

REPLACE(FORMAT(contracts.charge,2),',','') AS "contracts charge" 
+0

Muchas gracias, que funcionaron muy bien –

0

Invertir, a decimal. a millas REEMPLAZAR (REEMPLAZAR (REEMPLAZAR) (FORMAT (contracts.charge, 2), ',', '-'), '.', ','), '-', '.') AS contracts_charge

+0

realmente deberían estar fijándose su localidad adecuadamente, no se trata de hacer la sustitución en la cadena existente formato, como este. – Iguananaut

5

este post parece tener una solución mucho más limpio:

sólo tiene que utilizar ROUND, esta es una función numérica. FORMAT es una función de cadena

Cuestiones relacionadas