Postgres lc_numeric无法按预期工作

时间:2017-01-19 23:33:45

标签: postgresql amazon-web-services locale

我涉及的项目涉及使用丹麦语数字设置的数据库(小数点分隔符是逗号)。我试图找出如何将数据库中的值存储为十进制/数字/除文本之外的任何值,但让它们保留逗号分隔符。我已将AWS参数组中的lc_numeric设置更新为da_DK,我在网上发现它是丹麦语区域设置,但值仍显示为句点而不是小数。需要做出哪些改变/这可能吗?

例如:

CREATE TABLE test ( 
    num NUMERIC 
);                             // I've also tried Decimal instead of numeric

INSERT INTO test ('1,3')       // error 
INSERT INTO test ('1.3')       // returns 1.3 when selected.
SHOW lc_numeric                // returns da_DK as expected.
SELECT * FROM test;            // 1.3

我做错了什么?

注意:这是通过AWS RDS的postgres实例,任何更改都需要通过参数组菜单进行,而不是通过命令行进行。

1 个答案:

答案 0 :(得分:0)

lc_numeric不会影响数字类型的字符串输入和输出格式,因此它也不会影响类型转换的结果。

它只影响转换函数to_charto_number。关于小数分隔符,lc_numeric确定D格式说明符的含义。