Creo que tienes este error porque el year_exp
el campo es DECIMAL(2,2)
, y quieres DECIMAL(4,2)
. DECIMAL(2,2)
significa un número de precisión 2, con hasta 2 decimales. Pero este número tiene 4 dígitos de precisión.
Este enlace a MSDN habla sobre la precisión decimal.
http://msdn.microsoft.com/ es-ES/library/ms187746(v=SQL.90).aspx
Aquí hay una prueba rápida con resultados similares (realizada en SQL Server 2008, pero creo que estás en MySQL...)
1) Creó una tabla con una columna de prueba:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Ejecutó la declaración de inserción... :
INSERT INTO testtable (testcolumn) VALUES (23.45)
... y recibí este error...
(COMENTARIO:uno de mis errores favoritos... "no se puede convertir número a número...", ja, ja)
3) Columna alterada según las especificaciones adecuadas
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Vuelva a ejecutar la misma declaración de inserción. Funciona.
Por favor, hágame saber si esto ayuda.