No SQL Server, você pode usar o T-SQL
FORMAT()
função para formatar um número como moeda. O
FORMAT()
função permite formatar números, datas, moedas, etc. Aceita três argumentos; o número, o formato e um argumento opcional de “cultura”. Este artigo trata especificamente do uso do argumento de formato para especificar uma moeda. Exemplo 1 – Uso básico
Aqui está um exemplo de formatação de um número como moeda:
SELECT FORMAT(1234, 'C') Result;
Resultado:
+-----------+ | Result | |-----------| | $1,234.00 | +-----------+
Neste caso, usei
C
como segundo argumento. Esta é a string de formato numérico padrão para Moeda. Exemplo 2 – Sensibilidade entre maiúsculas e minúsculas
Este argumento não diferencia maiúsculas de minúsculas, portanto,
C
ou c
retorna o mesmo resultado:SELECT FORMAT(1234, 'c') Result;
Resultado:
+-----------+ | Result | |-----------| | $1,234.00 | +-----------+
Exemplo 3 – Casas decimais
Aqui está outro exemplo, desta vez usando
C0
para especificar que não queremos casas decimais:SELECT FORMAT(1234, 'C0') Result;
Resultado:
+----------+ | Result | |----------| | $1,234 | +----------+
Isso é chamado de “especificador de precisão”, provavelmente porque permite especificar a precisão com que o resultado é exibido.
Você também pode aumentar o número de casas decimais também:
SELECT FORMAT(1234, 'C4') Result;
Resultado:
+-------------+ | Result | |-------------| | $1,234.0000 | +-------------+
Exemplo 4 – Local
Todos os exemplos anteriores resultaram em um cifrão sendo prefixado ao número. Tudo bem se a moeda desejada estiver em dólares, mas e se você precisar exibi-la em uma moeda diferente?
Você pode usar um terceiro argumento para especificar a localidade. Isso resultará automaticamente no uso do símbolo de moeda apropriado para essa localidade:
SELECT FORMAT(1234, 'C', 'fr-FR') Result;
Resultado:
+------------+ | Result | |------------| | 1 234,00 € | +------------+
Aqui estão mais algumas localidades:
SELECT FORMAT(1234, 'C', 'fr-FR') 'France', FORMAT(1234, 'C', 'zh-cn') 'China', FORMAT(1234, 'C', 'th-TH') 'Thailand', FORMAT(1234, 'C', 'de-DE') 'Germany';
Resultado:
+------------+-----------+------------+------------+ | France | China | Thailand | Germany | |------------+-----------+------------+------------| | 1 234,00 € | ¥1,234.00 | ฿1,234.00 | 1.234,00 € | +------------+-----------+------------+------------+
Se a cultura argumento não for especificado, o idioma da sessão atual será usado.
Veja como encontrar o idioma da sessão atual e como configurá-lo.
Observe que o idioma atual geralmente será o mesmo que o idioma padrão do usuário, mas esse pode não ser o caso se o usuário tiver alterado o idioma atual usando
SET LANGUAGE
. De qualquer forma, você também pode descobrir qual é o idioma padrão. Como você pode imaginar, você pode obter resultados bem diferentes dependendo do seu idioma atual ou do valor de qualquer argumento de “cultura”. Veja Como as configurações de idioma podem afetar seus resultados FORMAT() para mais exemplos.