Se você está formatando um número no PostgreSQL e deseja alterar a localidade para que o grupo correto e os separadores decimais sejam usados, veja como fazer isso.
Existem duas variáveis de sistema de interesse:
lc_monetary | Define a localidade a ser usada para formatar valores monetários. |
lc_numeric | Define a localidade a ser usada para formatar números. |
Estes podem ser definidos com o
SET
demonstração. Por exemplo:
SET lc_numeric = 'en_US';
Resultado:
SET
Tendo definido isso, funções como
TO_CHAR()
irá formatar os números de acordo com o en_US
formato. Exemplos
Aqui estão alguns exemplos que demonstram como essas variáveis podem afetar a saída:
O lc_monetary
Variável
Aqui está um exemplo de configuração do
lc_monetary
variável:SET lc_monetary = 'en_US';
SELECT CAST(123456.789 AS money);
Resultado:
$123,456.79
E aqui está usando uma localidade diferente:
SET lc_monetary = 'de_DE';
SELECT CAST(123456.789 AS money);
Resultado:
Eu123.456,79
O lc_numeric
Variável
Aqui está um exemplo de configuração do
lc_numeric
variável, formatando um número com o TO_CHAR()
função:SET lc_numeric = 'en_US';
SELECT TO_CHAR(123456.789, 'fm999G999D99');
Resultado:
123,456.79
E aqui está usando uma localidade diferente:
SET lc_numeric = 'de_DE';
SELECT TO_CHAR(123456.789, 'fm999G999D99');
Resultado:
123,456.79
Verifique as configurações atuais
Você pode verificar suas configurações atuais com o
SHOW
comando. Exemplo:
SHOW lc_monetary;
Resultado:
en_US
E:
SHOW lc_numeric;
Resultado:
de_DE
Redefinir para os valores padrão
Você pode usar o seguinte para definir cada variável de volta à sua configuração padrão:
SET lc_monetary TO DEFAULT;
SHOW lc_monetary;
Resultado:
en_US.UTF-8
E para
lc_numeric
:SET lc_numeric TO DEFAULT;
SHOW lc_numeric;
Resultado:
en_US.UTF-8
As localidades disponíveis em seu sistema e seus nomes dependem do que foi fornecido pelo fornecedor do sistema operacional e do que foi instalado. Consulte a documentação do PostgreSQL sobre suporte a localidades para obter mais informações.