2016-07-26 7 views
1

При запуске набора операторов вставки в MySQL я продолжаю получать Error Code: 1264. Out of range value for column 'x' at row 1. Тип столбца установлен в float(10, 10), а значения в столбце варьируются от 23.912 to 26.458, которые находятся в пределах границ. У меня нет абсолютно никакой идеи, почему я получаю эту ошибку.Strange 1264 Ошибка вне диапазона

ответ

4

float(10,10) означает, что хранится 10 знаков после запятой, без пробела для целочисленного компонента.

0.1234567890 будет действительным, потому что это 10 знаков после запятой, но 1.234567890 нет, потому что вы не оставляли места для 1.

Это float(total digits, decimal places) и является суммой, не integer places, decimal places.

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

Это имеет смысл. Я не понимал, что предел левой руки был суммой цифр справа и слева от десятичной, тогда как правая граница была только десятичной точкой. Благодаря! – ThoseKind

0

Для ваших значений 23.912 to 26.458, float(10, 10) не может работать. Описание: -

В обращении первых 10 говорит, что вы можете ввести 10 цифр в этой области и второй 10 говорит 10 цифр после (.)

Таким образом, в эти поля можно вставить: -

0.111111111 
. 
. 
. 
0.999999999 

Но вы не можете: -

1.111111111 
. 
. 
. 
. 
. 
111111111.1 
Смежные вопросы