为 PostgreSQL 设置 lc_monetary
Set lc_monetary for PostgreSQL
如何设置 lc_monetary
以将 money
(docs) 数据类型显示为 EUR?
我试过了:
- 更改
postgresql.conf
并设置 lc_monetary="de_DE.UTF-8@euro
。 PG不会以此更改启动(当前设置为en_US.UTF-8
)
- 通过 pgAdmin 和 psql(使用
set
)做同样的事情,我得到 ERROR: invalid value for parameter "lc_monetary"
我当前的排序规则是 en_US.UTF-8
。
语言环境取决于操作系统。检查可用的语言环境
select *
from pg_collation
where collname ~ any(array['DE', 'FR', 'GR', 'IE'])
collname | collnamespace | collowner | collencoding | collcollate | collctype
------------+---------------+-----------+--------------+-------------+------------
en_IE | 11 | 10 | 6 | en_IE.utf8 | en_IE.utf8
en_IE.utf8 | 11 | 10 | 6 | en_IE.utf8 | en_IE.utf8
(2 rows)
好吧,我的 Ubuntu 不会说德语、法语或希腊语,但爱尔兰人会说英语并用欧元支付。
set lc_monetary to "en_IE.utf8";
select 10::money;
money
--------
€10.00
(1 row)
在Windows中很可能that the comp speaks German:
set lc_monetary to "de-DE";
不幸的是,pg_collation
没有显示这个。
如何设置 lc_monetary
以将 money
(docs) 数据类型显示为 EUR?
我试过了:
- 更改
postgresql.conf
并设置lc_monetary="de_DE.UTF-8@euro
。 PG不会以此更改启动(当前设置为en_US.UTF-8
) - 通过 pgAdmin 和 psql(使用
set
)做同样的事情,我得到ERROR: invalid value for parameter "lc_monetary"
我当前的排序规则是 en_US.UTF-8
。
语言环境取决于操作系统。检查可用的语言环境
select *
from pg_collation
where collname ~ any(array['DE', 'FR', 'GR', 'IE'])
collname | collnamespace | collowner | collencoding | collcollate | collctype
------------+---------------+-----------+--------------+-------------+------------
en_IE | 11 | 10 | 6 | en_IE.utf8 | en_IE.utf8
en_IE.utf8 | 11 | 10 | 6 | en_IE.utf8 | en_IE.utf8
(2 rows)
好吧,我的 Ubuntu 不会说德语、法语或希腊语,但爱尔兰人会说英语并用欧元支付。
set lc_monetary to "en_IE.utf8";
select 10::money;
money
--------
€10.00
(1 row)
在Windows中很可能that the comp speaks German:
set lc_monetary to "de-DE";
不幸的是,pg_collation
没有显示这个。