Так что просто для того, чтобы дать вам пример того, как наша процедура в конечном итоге будет работать с данными, и получить эту ошибку, вот несколько SQL:
DECLARE @daysInPeriod INT
DECLARE @dcFraction DECIMAL(38,38)
DECLARE @YEAR_360 DECIMAL
SET @YEAR_360 = 360.0000000000
SET @daysInPeriod = DATEDIFF(dd, '12/24/1970', '6/29/07')
SET @dcFraction = @daysInPeriod/@YEAR_360
Если вы запустите это в SQL Server 2008 R2, вы увидите, что вы получите ошибку 'Arithmetic overflow error converting numeric to data type numeric.'
.
decimal
, для которого я устанавливаю значение, является max'd out с точки зрения мест, которые оно может содержать, и я считаю, что это 38. Я не знаю, что еще я могу сделать, чтобы получить это значение. Разве вы не можете разделить integer
на decimal
в SQL и получить что-то из этого, особенно если decimal
max max?