money
类型存储固定小数精度的货币数字,参阅表 8.3。小数的精度由数据库的lc_monetary设置决定。表中展示的范围假设有两个小数位。可接受的输入格式很多,包括整数和浮点数文字,以及常用的货币格式,如"$1,000.00"
。 输出通常是最后一种形式,但和区域相关。
表 8.3. 货币类型
名字 | 存储尺寸 | 描述 | 范围 |
---|---|---|---|
money | 8 bytes | 货币额 | -92233720368547758.08到+92233720368547758.07 |
由于这种数据类型的输出是区域敏感的,因此将money
数据装入到一个具有不同lc_monetary
设置的数据库是不起作用的。为了避免这种问题,在恢复一个转储到一个新数据库中之前,应确保新数据库的lc_monetary
设置和被转储数据库的相同或者具有等效值。
数据类型numeric
、int
和bigint
的值可以被造型成money
。从数据类型real
和double precision
的转换可以通过先造型成numeric
来实现,例如:
SELECT "12.34"::float8::numeric::money;
但是,我们不推荐这样做。浮点数不应该被用来处理货币,因为浮点数可能会有圆整错误。
一个money
值可以在不损失精度的情况下被造型成numeric
。转换到其他类型可能会丢失精度,并且必须采用两个阶段完成:
SELECT "52093.89"::money::numeric::float8;
一个money
值被一个整数值除的除法结果会被截去分数部分。要得到圆整的结果,可以除以一个浮点值,或者在除法之前把money
转换成numeric
然后在除法之后转回money
(如果要避免精度丢失的风险则后者更好)。当一个money
值被另一个money
值除时,结果是double precision
(即一个纯数字,而不是金额),在除法中货币单位被约掉了。
DROP TEXT SEARCH DICTIONARY — 移除一个文本搜索字典大纲DROP TEXT SEARCH DICTIONARY [ IF EXISTS ] name [ CASCADE | RESTRI...
SET TRANSACTION — 设置当前事务的特性大纲SET TRANSACTION transaction_mode [, ...]SET TRANSACTION SNAPSHOT snapshot_idSET...
这部份包含PostgreSQL客户端应用和工具的参考信息。不是所有这些命令都是通用工具,某些需要特殊权限。这些应用的共同特征是它们...
本书出处:http://learnvimscriptthehardway.onefloweroneworld.com/笨方法学Vimscript面向那些想学会如何自定义Vim编辑器的用户...
LeftJoin/RightJoin/InnerJoinLeftJoin左关联查询;RightJoin右关联查询;InnerJoin内关联查询;其实我们并不推荐使用Jo...
XSL-FO azimuth 属性 XSL-FO 参考手册定义和用法 azimuth属性仅能用于Aural StylesheetsAural Stylesheets(音频样式表)。 对文档...