MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como FORMAT() funciona no MariaDB


No MariaDB, FORMAT() é uma função de string interna que formata e retorna o número fornecido como uma string.

Requer dois argumentos e aceita um terceiro argumento opcional. O primeiro é o número que você deseja formatar, o segundo é a posição decimal e o terceiro (opcional) é a localidade.

Sintaxe


A sintaxe fica assim:
FORMAT(num, decimal_position[, locale])

Onde num é o número, decimal_position é o número de casas decimais para arredondar o número e locale é uma localidade opcional a ser usada para formatar o número (diferentes localidades usam convenções diferentes para formatar números).

Exemplo


Segue um exemplo básico:
SELECT FORMAT(1234.5678, 2);

Resultado:
+----------------------+
| FORMAT(1234.5678, 2) |
+----------------------+
| 1,234.57             |
+----------------------+

Aqui, FORMAT() adicionou uma vírgula para um separador de milhares. Ele também arredondou o número para duas casas decimais (porque eu especifiquei 2 como o segundo argumento).

Remover parte fracionária


Para remover a parte fracionária (e seu ponto decimal associado), use 0 (zero) como o segundo argumento:
SELECT FORMAT(1234.5678, 0);

Resultado:
+----------------------+
| FORMAT(1234.5678, 0) |
+----------------------+
| 1,235                |
+----------------------+

Adicionando casas decimais


Se o segundo argumento for um número maior que o número de casas decimais no primeiro argumento, zeros serão adicionados ao resultado, para que reflita o número desejado de casas decimais:
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 uma localidade


Opcionalmente, você pode passar um terceiro argumento para especificar a localidade a ser usada para a formatação.

Exemplo:
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 não numéricos


FORMAT() apenas formata números. Fornecer uma string, por exemplo, resulta em 0 sendo devolvido. No entanto, ainda é formatado para a casa decimal especificada:
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


Fornecendo null pois qualquer um dos dois primeiros argumentos resulta em null :
SELECT 
    FORMAT(null, 2),
    FORMAT(25, null);

Resultado:
+-----------------+------------------+
| FORMAT(null, 2) | FORMAT(25, null) |
+-----------------+------------------+
| NULL            | NULL             |
+-----------------+------------------+

Mas passando null como o terceiro argumento não afeta o resultado:
SELECT FORMAT(25, 2, null);

Resultado:
+---------------------+
| FORMAT(25, 2, null) |
+---------------------+
| 25.00               |
+---------------------+

Fornecendo apenas um argumento


Fornecer um único argumento resulta em um erro:
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

Sem argumentos


Chamando FORMAT() sem passar nenhum argumento resulta em um erro:
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