Ich glaube, Sie haben diesen Fehler, weil year_exp
Feld ist DECIMAL(2,2)
, und Sie wollen DECIMAL(4,2)
. DECIMAL(2,2)
bedeutet eine Zahl mit der Genauigkeit 2, mit bis zu 2 Dezimalstellen. Aber diese Zahl hat eine Genauigkeit von 4 Stellen.
Dieser Link zu MSDN spricht über die Dezimalgenauigkeit.
http://msdn.microsoft.com/ en-US/library/ms187746(v=SQL.90).aspx
Hier ist ein Schnelltest mit ähnlichen Ergebnissen (in SQL Server 2008 durchgeführt, aber ich glaube, Sie verwenden MySQL...)
1) Erstellt eine Tabelle mit einer Testspalte:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Insert-Anweisung ausgeführt... :
INSERT INTO testtable (testcolumn) VALUES (23.45)
... und diesen Fehler erhalten ...
(KOMMENTAR:einer meiner Lieblingsfehler ... "Zahl kann nicht in Zahl umgewandelt werden ..." ha ha)
3) Geänderte Säule zu den richtigen Spezifikationen
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Dieselbe Einfügeanweisung erneut ausführen. Es klappt.
Bitte lassen Sie mich wissen, ob dies hilft.