2016-07-26 16 views
1

Wenn ich eine Reihe von Insert-Anweisungen in MySQL ausführen, bekomme ich immer Error Code: 1264. Out of range value for column 'x' at row 1. Der Spaltentyp ist auf float(10, 10) eingestellt und die Werte in der Spalte reichen von 23.912 to 26.458, die innerhalb der Grenzen liegen. Ich habe absolut keine Ahnung, warum ich diesen Fehler erhalte.Seltsame 1264 Out of Range Error

Antwort

4

float(10,10) bedeutet 10 Dezimalstellen speichern, ohne Platz für die Ganzzahl-Komponente.

0.1234567890 würde gültig sein, denn das 10 Dezimalstellen ist, aber 1.234567890 ist nicht, weil Sie jeden Raum nicht verlassen haben für den 1.

Es float(total digits, decimal places) ist, und ist eine Summe, nicht integer places, decimal places.

123.456789 = 9 digits total, 6 for decimals -> float(9, 6) 
+0

Das macht viel mehr Sinn. Ich habe nicht verstanden, dass die linke Grenze die Summe der Ziffern rechts und links der Dezimalstelle war, während die rechte Grenze nur die Dezimalstellen war. Vielen Dank! – ThoseKind

0

Für Ihre Werte 23.912 to 26.458 können float(10, 10) nicht funktionieren. Beschreibung: -

In Schwimmer erste 10 sagt, dass Sie 10-stellige in diesem Feld eingeben und die zweiten 10 sagen 10-stellige nach (.)

So in diesen Feldern eingefügt werden kann: -

0.111111111 
. 
. 
. 
0.999999999 

Aber Sie können nicht: -

1.111111111 
. 
. 
. 
. 
. 
111111111.1 
Verwandte Themen