Судя по форме запроса, invdate
, скорее всего, int. Вероятно, как 20190523
.
Вам также придется преобразовать результат getdate()
в int.
...
where datebase1.invdate <= convert(int,convert(varchar(8),getdate(),112))
Правила приоритета сервера Sql хотят преобразовать ваше 8-значное целое число в дату и время, которое превышает максимальное значение, поддерживаемое для даты и времени, которое составляет всего 2 958 463.
На мой взгляд, это ужасный способ хранить даты. А если вам не важен компонент времени, вы можете использовать тип данных date
, который использует только 3 байта на каждый вместо 4 байтов на int