我在中配置了一个数据库 en_US
但是,我想做一个 COPY
命令保存 NUMERIC
中的列 pt_BR
数字格式。
我可以只为活动会话更改数字区域设置以获得正确格式的数字吗?
我得到的(小数点分隔符上的点):
database=> SELECT value FROM myTable LIMIT 1;
value
--------
33.9
database=> show lc_numeric;
lc_numeric
------------
C
我所期望的(小数点分隔符上的逗号):
database=> SELECT value FROM myTable LIMIT 1;
value
--------
33,9
有办法只在会议上改变吗?
我可以手动格式化输出(以一种丑陋的方式),但是,我想在会话中自动执行此操作:
database=> SELECT replace(replace(replace(round(value::numeric, 2)::varchar, '.','_'),',','.'),'_',',') FROM myTable LIMIT 1;
value
--------
33,9
1条答案
按热度按时间k7fdbhmy1#
是的,你可以用
SET
只为当前会话更改参数,但它不会执行所需操作。数据类型输出函数忽略lc_numeric
. 这是有意的。你需要使用
to_char
关于国家十进制分隔符格式代码,请参阅文档。