【发布时间】:2017-08-28 16:25:23
【问题描述】:
我无法将双精度值转换为货币。
SELECT scrap_cost.year AS year
, scrap_cost.weekly AS week
, scrap_cost.scrap_cost::MONEY
, labor_cost.labor_cost::MONEY
FROM ...
返回
ERROR: cannot cast type double precision to money
LINE 4: ..., scrap_cost.scrap_cost::MONEY, labor_cost.labor_cost::money
^
********** Error **********
ERROR: cannot cast type double precision to money
SQL state: 42846
Character: 117
【问题讨论】:
-
您为什么要这样做?
money是一个非常没用的数据类型。 -
我正在 PG admin 中编写查询。它在 SSRS 中很好地返回
-
您应该首先将其存储为
numeric。double只是一个近似数据类型。如果您希望能够检索存储的值,则应远离 double。money没有numeric的优势,但有很多怪癖和劣势。 -
Money 以美元符号开头。这是我想要的结果。
-
除非您不使用美元作为您的货币(在我的系统上它显示为 € 符号)wiki.postgresql.org/wiki/Don%27t_Do_This#Don.27t_use_money
标签: postgresql