sql >> Databasteknik >  >> RDS >> Mysql

Varning#1264:fel utanför intervallet i mysql

Jag tror att du har det här felet eftersom year_exp fältet är DECIMAL(2,2) , och du vill ha DECIMAL(4,2) . DECIMAL(2,2) betyder ett antal precision 2, med upp till 2 decimaler. Men detta nummer har 4 siffror med precision.

Denna länk till MSDN talar om decimalprecisionen.

http://msdn.microsoft.com/ sv-US/library/ms187746(v=SQL.90).aspx

Här är ett snabbt test med liknande resultat (gjort i SQL Server 2008, men jag tror att du använder MySQL...)

1) Skapat en tabell med en testkolumn:

CREATE TABLE testtable (testcolumn DECIMAL(2,2))

2) Körde infoga uttalande... :

INSERT INTO testtable (testcolumn) VALUES (23.45)

... och fick det här felet ...

(KOMMENTAR:ett av mina favoritfel ... "kan inte konvertera nummer till nummer ..." ha ha)

3) Ändrad kolumn till korrekta specifikationer

ALTER TABLE testtable ALTER COLUMN testcolumn DECIMAL(4,2)

4) Kör samma infogningssats igen. Det fungerar.

Meddela mig om detta hjälper.



  1. MySQL-satsen tar mer än minut att exekvera

  2. Välja en processor för SQL Server 2012

  3. Hur man importerar en enskild tabell till mysql-databasen med hjälp av kommandoraden

  4. Hur man får identitetskolumnvärden utan att nämna identitetskolumnnamn i Select - SQL Server / T-SQL självstudie del 46