Função MySQL FORMAT()

Resumo : Este tutorial mostra como usar a FORMAT()função MySQL para formatar números decimais em vários locais.

Introdução à função MySQL FORMAT()

Às vezes, você usa uma expressão ou uma função agregada como AVG para calcular valores nos bancos de dados, como giro de estoque, preço líquido médio de produtos e valor médio da fatura.

O resultado da expressão é um decimal com muitas casas decimais. Para formatar esses números, você usa a FORMATfunção com a seguinte sintaxe:

FORMAT(N,D,locale);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A FORMATfunção formata o número N para formato como ‘#,###,###.##’, arredondado para D casas decimais. Ele retorna um valor como uma string.

A FORMATfunção aceita três argumentos:

  • O Né o número que você deseja formatar.
  • O Dé o número de casas decimais que você deseja arredondar.
  • A localidade é um argumento opcional que determina mil separadores e agrupamento entre separadores. Se você omitir o operador locale, o MySQL usará en_USpor padrão. O link a seguir fornece todos os nomes de localidades suportados pelo MySQL .

Exemplos de funções MySQL FORMAT

Veja os exemplos a seguir de uso da FORMATfunção.

SELECT FORMAT(12500.2015, 2);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Exemplo de FORMATO MySQL

A instrução a seguir utiliza a FORMATfunção com o segundo argumento zero, portanto, o resultado não possui casas decimais.

SELECT FORMAT(12500.2015, 0);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

MySQL FORMAT zero casas decimais

A instrução a seguir usa a de_DElocalidade em vez da en_USlocalidade:

SELECT FORMAT(12500.2015, 2,'de_DE');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

MySQL FORMAT de_DE localidade

Como você pode ver no resultado, a de_DElocalidade usa ponto (.) para agrupar mil e vírgula (,) para marca decimal.

Vamos dar uma olhada na productstabela no banco de dados de exemplo :

Para calcular o valor do estoque de cada produto, você multiplica a quantidade em estoque e o preço de compra da seguinte forma:

SELECT 
    productname, quantityInStock * buyPrice stock_value
FROM
    products;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

MySQL FORMAT casas decimais

O resultado não parece bom porque há muitas casas decimais.

Para melhorar, você pode combinar duas funções:  FORMATCONCAT. A FORMATfunção formata o valor do estoque arredondado para 2 casas decimais. A função CONCAT adiciona o símbolo USD ($) no início da sequência de valor da ação:

SELECT 
    productname,
    CONCAT('$',
            FORMAT(quantityInStock * buyPrice, 2)) stock_value
FROM
    products;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Sinal MySQL FORMATO USD

Observe que a FORMATfunção retorna um valor de string. Isso significa que se você quiser classificar os resultados da FORMATfunção usando a cláusula ORDER BY , o MySQL classificará os resultados usando base em string e não em número.

Por exemplo, a instrução a seguir classifica os valores das ações em ordem alfabética.

SELECT 
    productname,
    CONCAT('$',
            FORMAT(quantityInStock * buyPrice, 2)) stock_value
FROM
    products
ORDER BY stock_value;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

FORMATO MySQL com ORDER BY

Para classificar numericamente os valores das ações, você coloca a expressão na ORDER BYcláusula da seguinte forma:

SELECT 
    productname,
    CONCAT('$',
            FORMAT(quantityInStock * buyPrice, 2)) stock_value
FROM
    products
ORDER BY quantityInStock * buyPrice;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

FORMATO MySQL com ORDER BY correto

Resumo

  • Use a função MySQL FORMAT()para formatar um número em vários nomes de localidade.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *