Jag tror att du har det här felet eftersom year_exp
fältet är DECIMAL(2,2)
, och du vill ha DECIMAL(4,2)
. DECIMAL(2,2)
betyder ett antal precision 2, med upp till 2 decimaler. Men detta nummer har 4 siffror med precision.
Denna länk till MSDN talar om decimalprecisionen.
http://msdn.microsoft.com/ sv-US/library/ms187746(v=SQL.90).aspx
Här är ett snabbt test med liknande resultat (gjort i SQL Server 2008, men jag tror att du använder MySQL...)
1) Skapat en tabell med en testkolumn:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Körde infoga uttalande... :
INSERT INTO testtable (testcolumn) VALUES (23.45)
... och fick det här felet ...
(KOMMENTAR:ett av mina favoritfel ... "kan inte konvertera nummer till nummer ..." ha ha)
3) Ändrad kolumn till korrekta specifikationer
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Kör samma infogningssats igen. Det fungerar.
Meddela mig om detta hjälper.