FORMAT
La función FORMAT da formato a un número con separadores de miles y un número específico de decimales. Devuelve una cadena, no un número.
Sintaxis
FORMAT(numero, decimales)
FORMAT(numero, decimales, locale)decimales: número de posiciones decimaleslocale(opcional): formato regional (por defecto'en_US')
Ejemplo básico
SELECT FORMAT(1234567.891, 2) AS resultado;| resultado |
|---|
| 1,234,567.89 |
SELECT FORMAT(1234567.891, 0) AS sin_decimales;| sin_decimales |
|---|
| 1,234,568 |
Se redondea al número de decimales indicado.
Formatear precios de productos
SELECT
nombre,
precio,
CONCAT('$', FORMAT(precio, 2)) AS precio_formateado
FROM productos
LIMIT 5;| nombre | precio | precio_formateado |
|---|---|---|
| iPhone 15 Pro | 1299.99 | $1,299.99 |
| MacBook Air M2 | 1199.99 | $1,199.99 |
| AirPods Pro | 249.99 | $249.99 |
| iPad Air | 599.99 | $599.99 |
| Apple Watch Series 9 | 399.99 | $399.99 |
Total de ventas formateado
SELECT
CONCAT('$', FORMAT(SUM(total), 2)) AS ventas_totales,
FORMAT(COUNT(*), 0) AS num_pedidos
FROM pedidos;Formato regional (locale)
SELECT
FORMAT(1234567.89, 2, 'en_US') AS ingles,
FORMAT(1234567.89, 2, 'de_DE') AS aleman,
FORMAT(1234567.89, 2, 'es_ES') AS espanol;| ingles | aleman | espanol |
|---|---|---|
| 1,234,567.89 | 1.234.567,89 | 1.234.567,89 |
En español y alemán, el punto separa miles y la coma separa decimales.
FORMAT devuelve cadena
FORMAT devuelve VARCHAR, no un número. No lo uses en cálculos:
-- Esto no funciona para cálculos
SELECT FORMAT(1000, 2) + 1;
-- Resultado: 1001 (MySQL convierte, pero puede fallar con separadores de miles)
-- Mejor: formatear solo para presentación
SELECT FORMAT(precio * 1.21, 2) AS precio_con_iva
FROM productos
WHERE id = 1;| precio_con_iva |
|---|
| 1,572.99 |
FORMAT con NULL
SELECT FORMAT(NULL, 2) AS resultado;| resultado |
|---|
| NULL |
FORMAT con valores pequeños
SELECT
FORMAT(0.5, 2) AS medio,
FORMAT(0.001, 4) AS milesima,
FORMAT(42, 2) AS entero;| medio | milesima | entero |
|---|---|---|
| 0.50 | 0.0010 | 42.00 |
Con esto completamos la sección de funciones de cadena. En la siguiente sección exploraremos las funciones numéricas en MySQL.
Escrito por Eduardo Lázaro
