Tôi tin rằng bạn đang gặp lỗi này vì year_exp
trường là DECIMAL(2,2)
và bạn muốn DECIMAL(4,2)
. DECIMAL(2,2)
có nghĩa là một số có độ chính xác 2, có tới 2 chữ số thập phân. Nhưng con số này có 4 chữ số chính xác.
Liên kết tới MSDN này nói về độ chính xác thập phân.
http://msdn.microsoft.com/ vi-US / library / ms187746 (v =SQL.90) .aspx
Đây là một bài kiểm tra nhanh với kết quả tương tự (được thực hiện trong SQL Server 2008, nhưng tôi nghĩ bạn đang sử dụng MySQL ...)
1) Đã tạo bảng có cột kiểm tra:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Câu lệnh chèn Ran ...:
INSERT INTO testtable (testcolumn) VALUES (23.45)
... và nhận được lỗi này ...
(BÌNH LUẬN:một trong những lỗi yêu thích của tôi ... "không thể chuyển số thành số ..." ha ha)
3) Cột được thay đổi thành thông số kỹ thuật phù hợp
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Chạy lại cùng một câu lệnh chèn. Nó hoạt động.
Vui lòng cho tôi biết nếu điều này có ích.