В MSDN
четко сказано, что:
Аргумент даты не может быть увеличен до значения, выходящего за пределы диапазона его тип данных. В следующих инструкциях числовое значение, добавляемое к значению даты, превышает диапазон типа данных даты. Возвращается следующее сообщение об ошибке: «Добавление значения в столбец« datetime »вызвало переполнение».
И пример:
SELECT DATEADD(year,2147483647, '2006-07-31');
SELECT DATEADD(year,-2147483647, '2006-07-31');
, который вызывает ошибку:
«Добавление значения в столбец« datetime »вызвало переполнение. "
Это кажется правильным. Но почему я получаю ту же ошибку при выполнении этого оператора SQL:
SELECT DATEDIFF(YY,'1013-12-12',DATEADD(YY,-300,getdate()))
более конкретный и единственный:
SELECT DATEADD(YY,-300,getdate())