【发布时间】:2010-07-29 08:47:09
【问题描述】:
我想使用千位分隔符格式化长数字。可以使用to_char 函数来完成,就像:
SELECT TO_CHAR(76543210.98, '999G999G990D00')
但是当我的 UTF-8 编码的 PostgreSQL 服务器在波兰语版本的 Windows 上时,这样的 SELECT 以:
ERROR: invalid byte sequence for encoding "UTF8": 0xa0
HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
在to_char 模式中G 被描述为:组分隔符(使用区域设置)。
当服务器在波兰语言环境的 Linux 上运行时,此 SELECT 可以正常工作。
作为一种解决方法,我在格式字符串中使用空格而不是 G,但我认为应该有办法像在 Oracle 中一样设置千位分隔符:
ALTER SESSION SET NLS_NUMERIC_CHARACTERS=', ';
PostgreSQL 可以使用这样的设置吗?
【问题讨论】:
标签: postgresql formatting locale