Смятам, че имате тази грешка, защото year_exp
полето е DECIMAL(2,2)
и искате DECIMAL(4,2)
. DECIMAL(2,2)
означава число с точност 2, с до 2 знака след десетичната запетая. Но това число има 4 цифри с точност.
Тази връзка към MSDN говори за десетичната точност.
http://msdn.microsoft.com/ en-US/library/ms187746(v=SQL.90).aspx
Ето един бърз тест с подобни резултати (направен в SQL Server 2008, но мисля, че сте на MySQL...)
1) Създадена е таблица с тестова колона:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Изпълнете оператор за вмъкване... :
INSERT INTO testtable (testcolumn) VALUES (23.45)
... и получи тази грешка ...
(КОМЕНТАР:една от любимите ми грешки ... "не мога да преобразувам число в число..." ха-ха)
3) Променена колона към правилните спецификации
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Изпълнете отново същия оператор за вмъкване. Работи.
Моля, уведомете ме, ако това помага.