Alguns DBMSs nos fornecem a capacidade de formatar um número como moeda, fornecendo um especificador de formato para o símbolo da moeda. Fornecer tal especificador de formato permite que o DBMS retorne o símbolo de moeda apropriado para a localidade.
O MySQL não tem um especificador de formato de moeda e, portanto, precisamos fazer um pouco de trabalho extra se quisermos que o símbolo de moeda seja retornado.
Exemplo
Aqui está um exemplo de retorno de um número como moeda no MySQL:
SELECT CONCAT('$', FORMAT(1234.5678, 2));
Resultado:
$1,234.57
Aqui, usamos o
CONCAT()
função para concatenar o símbolo da moeda e o número. Também usamos o FORMAT()
função para formatar o número no formato desejado. Especifique uma localidade
O
FORMAT()
A função aceita um terceiro argumento opcional para a localidade. Isso permite formatar o número usando a localidade especificada. Exemplo:
SELECT CONCAT('€', FORMAT(1234.5678, 2, 'de_DE'));
Resultado:
€1.234,57
Neste caso, nosso símbolo de moeda é o símbolo do Euro (
€
) em vez do cifrão, e especificamos que o número deve ser formatado usando as convenções de numeração alemãs, que usam um ponto para o separador de grupo e uma vírgula para o ponto decimal. Formatação no aplicativo vs banco de dados
Geralmente, é recomendado que a formatação de moeda, etc., seja feita no nível do aplicativo, e não no nível do banco de dados. Os ambientes de programação de aplicativos geralmente têm melhores recursos de formatação do que os DBMSs, e geralmente é melhor ter dados não formatados retornados pelo banco de dados, para que o aplicativo possa começar com uma ardósia limpa e formatá-los conforme necessário.
Dito isso, às vezes a situação exige formatação no nível do banco de dados e, nesse caso, as técnicas acima podem ser úteis.