你好,我对MySQL的数据类型感到困惑。
显然,我使用的是decimal,这是商业应用程序中最安全的选择。但是,我发现当字段被返回时,我有999999999.99值,其中我的数据类型是十进制(10,2)。因此,实际值已经溢出到(10, 2)参数之外。
即使我在逗号之前指定了10个位置,在逗号后面指定了2个位置,这是否正确?MySQL仍然存储完整的数字
另外,是否可以关闭逗号前后显示的最大数字?
发布于 2013-04-20 13:48:06
即使我在逗号之前指定了10个位置,在逗号后面指定了2个位置,这是否正确?MySQL仍然存储完整的数字吗?
不,不会的。
首先,您总共指定了10位数字。;2在小数点的右边,8在左边。
标准SQL要求十进制(5,2)能够用五位数和两个小数存储任何值,因此可以存储在工资列中的值从-999.99到999.99不等。
其次,如果有两个以上的数字,MySQL将静默地将最小有效数字转换为缩放。这可能看起来像MySQL截断,但实际的行为是平台依赖的。如果您提供了太多最重要的数字,它将引发错误。
最后,当您使用数据库时,显示的数字数量与数据类型或它存储的值范围无关。
https://stackoverflow.com/questions/16120274
复制相似问题