Проблема SQL базы данных - PullRequest
2 голосов
/ 08 июня 2011

Эта команда работает с некоторыми базами данных SQL Server, но не с другими.

select Cast(Cast(DateDiff(mm,'20110608','20110708') as decimal(5,2))/12 as decimal(5,2))

Либо возвращает эту ошибку

Arithmetic overflow error converting numeric to data type numeric.

, либо работает и возвращает:

 0.08

Есть ли какие-либо настройки, которые я должен изменить в базе данных?

Ответы [ 2 ]

2 голосов
/ 08 июня 2011

решил это, установив:

SET NUMERIC_ROUNDABORT OFF
0 голосов
/ 08 июня 2011

Разные экземпляры работают с одной и той же версией или разными версиями SQL Server?Единственное, что выделяется - это ваш формат даты (например, «20110608»).Возможно, не поддерживается во всех версиях SQL Server?

В любом случае, попробуйте это вместо этого и посмотрите, появляется ли ошибка переполнения:

SELECT
  CONVERT(Decimal(5, 2), DATEDIFF(MM, '20110608', '20110708') / 12.0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...