Wydaje mi się, że masz ten błąd, ponieważ year_exp
pole to DECIMAL(2,2)
i chcesz DECIMAL(4,2)
. DECIMAL(2,2)
oznacza liczbę o dokładności 2, z maksymalnie 2 miejscami po przecinku. Ale ta liczba ma 4 cyfry precyzji.
Ten link do MSDN mówi o dokładności dziesiętnej.
http://msdn.microsoft.com/ en-US/library/ms187746(v=SQL.90).aspx
Oto szybki test z podobnymi wynikami (wykonany w SQL Server 2008, ale myślę, że korzystasz z MySQL...)
1) Utworzono tabelę z kolumną testową:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Uruchom wstaw oświadczenie... :
INSERT INTO testtable (testcolumn) VALUES (23.45)
... i otrzymałem ten błąd ...
(KOMENTARZ:jeden z moich ulubionych błędów ... „nie można przekonwertować liczby na liczbę ...” ha ha)
3) Zmieniono kolumnę zgodnie z odpowiednią specyfikacją
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Ponownie uruchom tę samą instrukcję wstawiania. To działa.
Daj mi znać, jeśli to pomoże.