Warnung # 1264: Fehler außerhalb des Bereichs in mysql

9

Die folgende Abfrage:

%Vor%

Es erzeugt den Fehler:

%Vor%

Bitte helfen Sie mir, den Fehler zu pint.

    
Misty 08.01.2013, 14:05
quelle

2 Antworten

13

Ich glaube, Sie haben diesen Fehler, weil das Feld year_exp DECIMAL(2,2) ist und Sie DECIMAL(4,2) möchten. DECIMAL(2,2) bedeutet eine Genauigkeit von 2 mit bis zu 2 Dezimalstellen. Aber diese Nummer hat 4 Stellen der Genauigkeit.

Dieser Link zu MSDN spricht über die Dezimalgenauigkeit.

Ссылка

Hier ist ein schneller Test mit ähnlichen Ergebnissen (in SQL Server 2008 gemacht, aber ich denke, Sie sind auf MySQL ...)

1) Erstellt eine Tabelle mit einer Testspalte:

%Vor%

2) Ran insert statement ...:

%Vor%

... und diesen Fehler erhalten ...

  

Nachricht 8115, Ebene 16, Status 8, Zeile 1
  Arithmetischer Überlauffehler beim Konvertieren von Zahlen in numerischen Datentyp.

(KOMMENTAR: einer meiner Lieblingsfehler ... "kann Zahlen nicht in Zahlen umwandeln ..." ha ha)

3) Geänderte Spalte entsprechend den Spezifikationen

%Vor%

4) Erneutes Ausführen derselben Insert-Anweisung. Es klappt.

Bitte lassen Sie mich wissen, wenn das hilft.

    
user1958225 08.01.2013 14:18
quelle
9

Ändern Sie den Feldtyp in decimal(4,2) . Details: Ссылка

  

Die Deklarationssyntax für eine DECIMAL-Spalte lautet DECIMAL (M, D). Die Wertebereiche für die Argumente in MySQL 5.7 lauten wie folgt:

     

M ist die maximale Anzahl der Ziffern (die Genauigkeit). Es hat einen Bereich von 1 bis 65.

     

D ist die Anzahl der Stellen rechts vom Dezimalpunkt (Skala). Es hat einen Bereich von 0 bis 30 und darf nicht größer als M sein.

    
czachor 08.01.2013 14:14
quelle

Tags und Links