Acredito que você esteja tendo este erro porque o
year_exp
campo é DECIMAL(2,2)
, e você quer DECIMAL(4,2)
. DECIMAL(2,2)
significa um número de precisão 2, com até 2 casas decimais. Mas este número tem 4 dígitos de precisão. Este link para o MSDN fala sobre a precisão decimal.
http://msdn.microsoft.com/ pt-BR/library/ms187746(v=SQL.90).aspx
Aqui está um teste rápido com resultados semelhantes (feito no SQL Server 2008, mas acho que você está no MySQL ...)
1) Criei uma tabela com uma coluna de teste:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Executou a instrução de inserção... :
INSERT INTO testtable (testcolumn) VALUES (23.45)
... e recebi este erro ...
(COMENTÁRIO:um dos meus erros favoritos... "não é possível converter número em número..." ha ha)
3) Coluna alterada para especificações adequadas
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Execute novamente a mesma instrução de inserção. Funciona.
Por favor, deixe-me saber se isso ajuda.