PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Formatar números com vírgulas no PostgreSQL


No PostgreSQL, podemos usar o TO_CHAR() função para formatar números em um determinado formato. Isso inclui a formatação de números com vírgulas no local relevante.

PostgreSQL também tem um money tipo de dados, que gera o valor usando a localidade atual. Isso pode incluir vírgulas no local apropriado, com base na localidade que está sendo usada.

O TO_CHAR() Função


Aqui está um exemplo de uso do TO_CHAR() função para gerar um número com vírgulas:
SELECT TO_CHAR(123456.78, 'fm999G999D99');

Resultado:
123,456.78

O segundo argumento consiste em vários padrões de modelo numéricos que determinam como o primeiro argumento é formatado.

Aqui, usei o G padrão de modelo para um separador de grupo com reconhecimento de localidade (também conhecido como "separador de milhares"). Eu poderia ter usado uma vírgula (, ), mas isso não teria reconhecimento de localidade.

Eu também usei o D padrão de modelo para um separador decimal com reconhecimento de localidade.

Nesse caso, também usei fm (que significa “Modo de Preenchimento”) para suprimir quaisquer zeros à direita e espaços em branco à esquerda que possam ter sido aplicados automaticamente ao resultado.

O 9 padrão de modelo é para cada dígito. Você pode usar 0 em vez disso, se desejar incluir zeros à esquerda.

Porque o G e D os padrões de modelo reconhecem a localidade, eles são capazes de produzir o caractere apropriado para o grupo e os separadores decimais.

Aqui está um exemplo para demonstrar o que quero dizer:
SET lc_numeric = 'fr_FR';
SELECT TO_CHAR(123456.78, 'fm999G999D99');

Resultado:
123,456.78

Agora, o separador de grupo é representado por um ponto/ponto final, e o separador decimal é representado por uma vírgula. Isso ocorre porque alterei o lc_numeric variável para usar fr_FR (para a França), e é costume francês ter seu separador de grupo e ponto decimal representado dessa maneira.

Diferentes localidades têm convenções diferentes para formatar números, e o G e D modificadores de formato são capazes de determinar quais caracteres usar para separadores de grupo e o separador decimal .

O money Tipo de dados


PostgreSQL tem um money tipo de dados que gera seus valores formatados com reconhecimento de localidade.

Exemplo:
SET lc_monetary = 'en_US';
SELECT CAST(123456.78 AS money);

Resultado:
$123,456.78

Agora vamos alterar o lc_monetary variável e veja como isso afeta a saída:
SET lc_monetary = 'fr_FR';
SELECT CAST(123456.78 AS money);

Resultado:
123 456,78 Eu

Neste caso, o separador de grupo é representado por um espaço e o separador decimal é uma vírgula.