«Добавление значения в столбец« datetime »вызвало переполнение». - PullRequest
8 голосов
/ 22 февраля 2012

В 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())

Ответы [ 2 ]

11 голосов
/ 22 февраля 2012

Первый результат Google для 'sql datetime range' .1 января 1753 года. Это ваша нижняя граница.

Добавлен комментарий к вопросу это пустяки о происхождении этой нижней границы.

1 голос
/ 11 февраля 2015

Если вы выполняете преобразование DateTime с полем, используйте оператор преобразования в преобразовании, чтобы проверить, больше ли поле 1 ИЛИ 1000000, тогда у вас больше не должно быть этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...