Postgres - 格式化货币价值

时间:2021-03-23 23:25:48

标签: postgresql

我使用的是带有 Latin1 编码的 Postgres。如何以货币形式格式化值,例如:1,200.50

postgres 的本机功能在 latin1 中不起作用,我不能 将数据库转换为 utf-8。有谁知道如何格式化?要么 至少有一个想法,如何在sql中直接改变charset而不影响整个数据库?

1 个答案:

答案 0 :(得分:0)

要确定如何呈现组分隔符和小数分隔符,您必须正确设置 lc_numeric。您还必须正确设置 lc_monetary,否则您可能会收到错误,指出 LATIN1 中不存在货币符号(这令人惊讶,但似乎是 to_char 实现的一部分).

SET lc_numeric = "en_US";
SET lc_monetary = "en_US";

SELECT to_char(1200.50, 'FM999G999G999D00');

 to_char  
----------
 1,200.50
(1 row)

这是在 Linux 机器上。在不同的操作系统上,区域设置名称可能不同。

这与数据库的编码无关。 但是,您必须使用与数据库编码 LATIN1 兼容的客户端编码。那不可能是 WIN1252,但这是一个独立的问题。