Ram*_*ini 0 postgresql pgadmin money postgresql-9.4
这是我上一个问题的后续/是否可以在 PostgreSQL 中插入货币数据类型的未格式化数据
我可以通过将其类型转换为数字来读取货币数据
SELECT '52093.89'::money::numeric
Run Code Online (Sandbox Code Playgroud)
它会给出不一致的数据,四舍五入等吗?
根据 ISO 标准,money数据类型大小为 (19,4) 但为什么 PostgreSQL 返回大小为 2147483647?这个大小取决于语言环境吗?
使用money数据类型来存储/检索特定于区域设置的值是个好主意吗?如果不是,什么时候money数据类型最合适?
我必须在money某些情况下使用数据类型。我担心的是,如果我将money数据类型值视为十进制值,我会遇到任何问题吗?
我不关心特定于语言环境的值,例如符号、数字和十进制分组等。我可以根据lc_monetary设置存储货币数据类型值并通过将其类型转换为读取numeric吗?
在 Postgres 中,从moneyto 的转换numeric是精确的、不可变的并且不舍入。
在 SQL Server 中,数据类型MONEY使用 8 个字节来存储数值范围从 -922337203685477.5808 到 922337203685477.5807 的任何货币的值。
匹配numeric(19,4)。
在 PostgreSQL 中,数据类型money也占用 8 个字节,但允许的范围是 -92233720368547758.08 到 +92233720368547758.07。相同的精度,但默认情况下不同的比例(LC_MONETARY除了 'C' 之外没有设置) - 只有两个小数位。
匹配numeric(19,2)。
但是,引用手册:
小数精度由数据库的
lc_monetary设置决定。
我相应地更新了金钱的标签信息。
正如@a_horse 所评论的(反复),moneySQL 标准没有定义。
如果可以的话,远离数据类型几乎是这里的共识money。
| 归档时间: |
|
| 查看次数: |
817 次 |
| 最近记录: |