MONEY 数据类型存储货币金额。
与 DECIMAL(p,s) 数据类型类似,MONEY 可以存储最多 32 个有效数字的定点数,其中 p 是有效数字总数(精度),而 s 是小数点右边的位数(小数位)。
与 DECIMAL 数据类型不同,总是将 MONEY 数据类型视为定点小数处理。数据库服务器将数据类型 MONEY(p) 定义为 DECIMAL(p,2)。如果未指定精度和小数位,那么数据库服务器将 MONEY 列定义为 DECIMAL(16,2)。
如果小数位为奇数:N = (精度 + 4) / 2 如果小数位为偶数:N = (精度 + 3) / 2
例如,精度为 16 并且小数位为 2 的 MONEY 数据类型 (MONEY(16,2)) 需要 10(或者 (16 + 3)/2)个字节的存储空间。
要更改 MONEY 值的格式,请更改 DBMONEY 环境变量。有关有效的 DBMONEY 设置,请参阅 DBMONEY 环境变量。
数据库服务器用于小数位的缺省值与语言环境相关。缺省语言环境指定两位缺省小数位。对于非缺省语言环境,如果声明中省略了小数位,那么数据库服务器使用特定于语言环境的小数位来创建 MONEY 值。
客户机应用程序使用的货币表示法与语言环境相关。如果指定非缺省语言环境,那么客户机将特定于文化的格式用于 MONEY 值,根据语言环境文件所指定的内容,这些 MONEY 值的前导(或结尾)货币符号、千位分隔符和小数分隔符可能与缺省的美国英语格式不同。有关语言环境依赖性的更多信息,请参阅《GBase 8s GLS 用户指南》。