我相信您遇到此错误是因为该year_exp
字段是DECIMAL(2,2)
,并且您想要DECIMAL(4,2)
。DECIMAL(2,2)
表示精度为 2 的数字,最多保留 2 位小数。但是这个数字有 4 位精度。
这个指向 MSDN 的链接讨论了小数精度。
http://msdn.microsoft.com/en-US/library/ms187746(v=SQL.90).aspx
这是一个具有类似结果的快速测试(在 SQL Server 2008 中完成,但我认为您使用的是 MySQL ......)
1)创建一个带有测试列的表:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2)运行插入语句...:
INSERT INTO testtable (testcolumn) VALUES (23.45)
...并收到此错误...
消息 8115,级别 16,状态 8,第 1
行将数字转换为数字数据类型的算术溢出错误。
(评论:我最喜欢的错误之一......“无法将数字转换为数字......”哈哈)
3) 将色谱柱更改为适当的规格
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) 重新运行相同的插入语句。有用。
请让我知道这可不可以帮你。