Formatear y redondear un número en MySQL

Cuando trabajamos con cantidades con decimales en MySQL, es posible que queramos formatear nuestro número. Este problema es muy usual si usamos números en coma flotante: FLOAT y DOUBLE. Yo siempre suelo recomendar excepto para aplicaciones de muy alto rendimiento usar el tipo DECIMAL, de forma que guardemos el valor exacto y no aproximado (otro día hablaremos de la representación de números decimales en forma de coma flotante y las ventajas e inconvenientes que tiene).

Imaginemos que guardamos las cantidades de un determinado importe en DOUBLE, al hacer una consulta nos sale una cantidad de números decimales demasiado grande. La idea es redondear el número de forma que sólo aparezcan sólo dos decimales:

SELECT ROUND(importe, 2)
FROM compras;

Si queremos formatear el número de forma que aparezca separado por comas los miles y por un punto la parte decimal (estilo americano), usaremos la función FORMAT. También le indicamos cuántos decimales queremos.

SELECT FORMAT(12332.1,4);

La salida sería: ‘12,332.1000’ y será una cadena, no un número.