Domnívám se, že k této chybě dochází kvůli year_exp
pole je DECIMAL(2,2)
a chcete DECIMAL(4,2)
. DECIMAL(2,2)
znamená číslo s přesností 2 až na 2 desetinná místa. Ale toto číslo má 4 číslice přesnosti.
Tento odkaz na MSDN hovoří o desetinné přesnosti.
http://msdn.microsoft.com/ en-US/library/ms187746(v=SQL.90).aspx
Zde je rychlý test s podobnými výsledky (provedený v SQL Server 2008, ale myslím, že používáte MySQL...)
1) Vytvořil tabulku s testovacím sloupcem:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Spustil vložení příkazu... :
INSERT INTO testtable (testcolumn) VALUES (23.45)
... a obdrželi tuto chybu ...
(KOMENTÁŘ:jedna z mých oblíbených chyb ... "nelze převést číslo na číslo..." ha ha)
3) Změněný sloupec podle správných specifikací
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Znovu spusťte stejný příkaz vložení. Funguje to.
Dejte mi prosím vědět, jestli to pomůže.