Credo che stai avendo questo errore perché il campo è year_exp
DECIMAL(2,2)
, e si desidera DECIMAL(4,2)
. DECIMAL(2,2)
significa un numero di precisione 2, con un massimo di 2 posizioni decimali. Ma questo numero ha 4 cifre di precisione.
Questo collegamento a MSDN parla della precisione decimale.
http://msdn.microsoft.com/en-US/library/ms187746(v=SQL.90).aspx
Ecco un breve test con risultati analoghi (fatto in SQL Server 2008, ma penso che tu sia su MySQL ...)
1) ha creato una tabella con una colonna di prova:
CREATE TABLE testtable (testcolumn DECIMAL(2,2))
2) Ran istruzione iNSERT ...:
INSERT INTO testtable (testcolumn) VALUES (23.45)
... e ha ricevuto questo errore ...
Msg 8115, livello 16, stato 8, linea 1
errore di overflow aritmetico conversione numerica di tipo di dati numerico.
(COMMENTO: uno dei miei errori favoriti '... "Non può convertire il numero al numero di ..." ah ah)
3) colonna modificata secondo le specifiche corrette
ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)
4) Ripetuta la stessa istruzione di inserimento. Funziona.
Per favore fatemi sapere se questo aiuta.
Qual è il valore di ** inserito ** registra ora? – inhan
@inhan grazieinhan. Il valore è 0.99 – Misty
Usa 'decimal (4,2)' per correggere il tuo errore e leggi come specificare i valori corretti per quel tipo di dati nei documenti MySQL. –