Ошибка «Добавление значения в столбец даты приводит к появлению переполненного столбца» в поле, которое не отображается при выполнении выбора * - PullRequest
0 голосов
/ 04 мая 2020

У меня есть SQL Запрос к серверу, который выдает ошибку

При добавлении значения в столбец даты выбрасывается переполненный столбец

в этом выражении:

DATEADD(M, 1, NEXTDATE)

Теперь, когда я удаляю этот столбец и выполняю select * в этом запросе, я не получаю NEXTDATE, который является недействительным; все действительные даты. Но таблица, из которой получен столбец Nextdate, имеет некоторые даты с 31.12.9999. Теперь, когда я ставлю дополнительное условие where как year(NEXTDATE) != 9999, оно работает нормально.

Так что я считаю, что он пытается добавить 1 месяц к дате 31.12.9999 и выдает эту ошибку. Но я не вижу эту дату с 9999 годом, когда я делаю select * над таблицей.

Мой вопрос, когда я делаю простое select *, почему я не вижу дату 12/31 / 9999, но добавление туда, где условие решает проблему.

1 Ответ

0 голосов
/ 04 мая 2020

Значение есть. Вы только что пропустили это.

Что это возвращает?

select max(nextdate)
from t;

Примечание: вполне возможно, что значение на самом деле отфильтровывается по логике запроса c, но SQL оптимизатор решает оценить выражение даже на отфильтрованных строках.

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