Jeg tror, du har denne fejl, fordi year_exp
feltet er DECIMAL(2,2)
, og du vil have DECIMAL(4,2)
. DECIMAL(2,2)
betyder et antal præcision 2, med op til 2 decimaler. Men dette tal har 4 cifre med præcision.
Dette link til MSDN taler om decimalpræcisionen.
http://msdn.microsoft.com/ en-US/library/ms187746(v=SQL.90).aspx
Her er en hurtig test med lignende resultater (udført i SQL Server 2008, men jeg tror, du er på MySQL...)
1) Oprettet en tabel med en testkolonne:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Kørte indsæt sætning... :
INSERT INTO testtable (testcolumn) VALUES (23.45)
... og modtog denne fejl ...
(KOMMENTAR:en af mine yndlingsfejl ... "kan ikke konvertere tal til tal ..." ha ha)
3) Ændret kolonne til korrekte specifikationer
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Kør samme indsættelseserklæring igen. Det virker.
Fortæl mig venligst, hvis dette hjælper.