sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona FORMAT() en MariaDB

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