En MariaDB, FORMAT()
es una función de cadena incorporada que formatea y devuelve el número dado como una cadena.
Requiere dos argumentos y acepta un tercer argumento opcional. El primero es el número que desea formatear, el segundo es la posición decimal y el tercero (opcional) es la configuración regional.
Sintaxis
La sintaxis es así:
FORMAT(num, decimal_position[, locale])
Donde num
es el número, decimal_position
es el número de lugares decimales para redondear el número y locale
es una configuración regional opcional para usar para formatear el número (diferentes configuraciones regionales usan diferentes convenciones para formatear números).
Ejemplo
He aquí un ejemplo básico:
SELECT FORMAT(1234.5678, 2);
Resultado:
+----------------------+ | FORMAT(1234.5678, 2) | +----------------------+ | 1,234.57 | +----------------------+
Aquí, FORMAT()
agregó una coma para un separador de miles. También redondeó el número a dos lugares decimales (porque especifiqué 2 como segundo argumento).
Eliminar parte fraccionaria
Para eliminar la parte fraccionaria (y su punto decimal asociado), use 0
(cero) como segundo argumento:
SELECT FORMAT(1234.5678, 0);
Resultado:
+----------------------+ | FORMAT(1234.5678, 0) | +----------------------+ | 1,235 | +----------------------+
Adición de decimales
Si el segundo argumento es un número mayor que el número de lugares decimales en el primer argumento, se agregan ceros al resultado para que refleje el número deseado de lugares decimales:
SELECT
FORMAT(1234, 2),
FORMAT(1234.56, 4),
FORMAT(1234.56, 8);
Resultado:
+-----------------+--------------------+--------------------+ | FORMAT(1234, 2) | FORMAT(1234.56, 4) | FORMAT(1234.56, 8) | +-----------------+--------------------+--------------------+ | 1,234.00 | 1,234.5600 | 1,234.56000000 | +-----------------+--------------------+--------------------+
Especifique una configuración regional
Opcionalmente, puede pasar un tercer argumento para especificar la configuración regional que se usará para el formato.
Ejemplo:
SELECT
FORMAT(1234567.8912, 2, 'da_DK') AS "da_DK",
FORMAT(1234567.8912, 2, 'rm_CH') AS "rm_CH",
FORMAT(1234567.8912, 2, 'es_BO') AS "es_BO",
FORMAT(1234567.8912, 2, 'ar_SA') AS "ar_SA";
Resultado:
+--------------+--------------+------------+------------+ | da_DK | rm_CH | es_BO | ar_SA | +--------------+--------------+------------+------------+ | 1.234.567,89 | 1'234'567,89 | 1234567,89 | 1234567.89 | +--------------+--------------+------------+------------+
Argumentos no numéricos
FORMAT()
solo formatea números. Proporcionar una cadena, por ejemplo, da como resultado 0
siendo devuelto. Sin embargo, todavía tiene el formato del lugar decimal especificado:
SELECT
FORMAT("Twenty five", 0),
FORMAT("Twenty five", 2),
FORMAT("Twenty five", 4);
Resultado:
+--------------------------+--------------------------+--------------------------+ | FORMAT("Twenty five", 0) | FORMAT("Twenty five", 2) | FORMAT("Twenty five", 4) | +--------------------------+--------------------------+--------------------------+ | 0 | 0.00 | 0.0000 | +--------------------------+--------------------------+--------------------------+
Argumentos nulos
Proporcionar null
ya que cualquiera de los dos primeros argumentos da como resultado null
:
SELECT
FORMAT(null, 2),
FORMAT(25, null);
Resultado:
+-----------------+------------------+ | FORMAT(null, 2) | FORMAT(25, null) | +-----------------+------------------+ | NULL | NULL | +-----------------+------------------+
Pero pasando null
ya que el tercer argumento no afecta el resultado:
SELECT FORMAT(25, 2, null);
Resultado:
+---------------------+ | FORMAT(25, 2, null) | +---------------------+ | 25.00 | +---------------------+
Proveer un solo argumento
Proporcionar un solo argumento da como resultado un error:
SELECT FORMAT(1234.56);
Resultado:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
No proporcionar argumentos
Llamando a FORMAT()
sin pasar ningún argumento da como resultado un error:
SELECT FORMAT();
Resultado:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1