为 PostgreSQL 设置 lc_monetary

Tom*_*eif 5 postgresql collation postgresql-10

如何设置将( docs ) 数据类型lc_monetary显示为 EUR?money

我试过:

  • 更改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.

kli*_*lin 5

区域设置取决于操作系统。检查哪些区域设置可用

\n\n
select * \nfrom pg_collation\nwhere collname ~ any(array[\'DE\', \'FR\', \'GR\', \'IE\'])\n\n  collname  | collnamespace | collowner | collencoding | collcollate | collctype  \n------------+---------------+-----------+--------------+-------------+------------\n en_IE      |            11 |        10 |            6 | en_IE.utf8  | en_IE.utf8\n en_IE.utf8 |            11 |        10 |            6 | en_IE.utf8  | en_IE.utf8\n(2 rows)\n
Run Code Online (Sandbox Code Playgroud)\n\n

好吧,我的 Ubuntu 不会说德语、法语或希腊语,但爱尔兰人会说英语并用欧元支付。

\n\n
set lc_monetary to "en_IE.utf8";\nselect 10::money;\n\n money  \n--------\n \xe2\x82\xac10.00\n(1 row)\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

在 Windows 中,该计算机可能会说德语:

\n\n
set lc_monetary to "de-DE";\n
Run Code Online (Sandbox Code Playgroud)\n\n

不幸的是,pg_collation没有显示这一点。

\n