Ik denk dat je deze fout hebt omdat de year_exp
veld is DECIMAL(2,2)
, en je wilt DECIMAL(4,2)
. DECIMAL(2,2)
betekent een getal met precisie 2, met maximaal 2 decimalen. Maar dit getal heeft een nauwkeurigheid van 4 cijfers.
Deze link naar MSDN spreekt over de decimale precisie.
http://msdn.microsoft.com/ nl-US/library/ms187746(v=SQL.90).aspx
Hier is een snelle test met vergelijkbare resultaten (uitgevoerd in SQL Server 2008, maar ik denk dat u MySQL gebruikt...)
1) Een tabel gemaakt met een testkolom:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Voer invoegopdracht uit... :
INSERT INTO testtable (testcolumn) VALUES (23.45)
... en kreeg deze fout ...
(OPMERKING:een van mijn favoriete fouten ... "kan nummer niet converteren naar nummer ..." ha ha)
3) Kolom gewijzigd in juiste specificaties
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Herhaal dezelfde insert-instructie. Het werkt.
Laat het me weten als dit helpt.