【问题标题】:Set lc_monetary for PostgreSQL为 PostgreSQL 设置 lc_monetary
【发布时间】:2019-06-01 13:27:07
【问题描述】:

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

我试过了:

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

【问题讨论】:

    标签: postgresql collation postgresql-10


    【解决方案1】:

    区域设置取决于操作系统。检查可用的语言环境

    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 没有显示此内容。

    【讨论】:

    • 不适合我:虽然我在 pg_collat​​ion 中看到 el-GR,但尝试将 lc_monetary 设置为“el-GR”仍然会给我参数“lc_monetary”的错误值无效值:“el -GR"
    猜你喜欢
    • 1970-01-01
    • 2015-05-09
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多