Saya yakin Anda mengalami kesalahan ini karena year_exp
kolomnya adalah DECIMAL(2,2)
, dan Anda ingin DECIMAL(4,2)
. DECIMAL(2,2)
berarti sejumlah presisi 2, dengan hingga 2 tempat desimal. Tetapi angka ini memiliki 4 digit presisi.
Tautan ke MSDN ini berbicara tentang presisi desimal.
http://msdn.microsoft.com/ en-US/library/ms187746(v=SQL.90).aspx
Berikut tes cepat dengan hasil yang serupa (dilakukan di SQL Server 2008, tapi saya pikir Anda menggunakan MySQL...)
1) Membuat tabel dengan kolom uji:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Jalankan pernyataan insert... :
INSERT INTO testtable (testcolumn) VALUES (23.45)
... dan menerima kesalahan ini ...
(KOMENTAR:salah satu kesalahan favorit saya ... "tidak dapat mengubah angka menjadi angka ..." ha ha)
3) Kolom diubah ke spesifikasi yang tepat
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Jalankan ulang pernyataan penyisipan yang sama. Berhasil.
Beri tahu saya jika ini membantu.