Проблема заключается в том, что вы не выделяете какую-либо длину значению до десятичной.
DECIMAL (15, 15)
означает, что он имеет точность в 15 цифр после десятичного знака, но всего достаточно места на 15 цифр, что не оставляет места для значений больше 1
.
Это означает, что DECIMAL (15, 15)
поддерживает только значение в следующем диапазоне: -0.999999999999999
до 0.999999999999999
(15 цифр после запятой).
Вы 18
цифры в первом примере, так что я рекомендовал бы использовать что-то вроде DECIMAL (21, 18)
DECIMAL (21, 18)
будет поддерживать значения в диапазоне от: -999.999999999999999999
до 999.999999999999999999
(18 знаков после запятой).
Но вы должны проанализировать свои данные, чтобы узнать, какое максимальное значение будет необходимо для поддержки.
Thank You Siyual. Это сработало. – swathi
Если вы специально не хотите больше десятичных знаков, имейте в виду, что от 10 до 19 цифр поле использует 9 байт, а от 20 до 28 оно использует 13, поэтому вы можете использовать 'DECIMAL (28,25)' (для пример), получая более высокую точность с тем же количеством байтов хранения (источник: https://msdn.microsoft.com/en-us/library/ms187746.aspx). Вы также можете рассмотреть возможность использования типов денег: https://msdn.microsoft.com/en-us/library/ms179882.aspx, хотя он имеет только до 4 десятичных цифр (обычно более чем достаточно для денег, может быть, не ваших дело). – Andrew
My Len данных в полевых условиях 14 13 и я все еще получаю эту ошибку. Я не уверен, что я делаю неправильно. Любая помощь, пожалуйста? – swathi