Попробуйте использовать BETWEEN
вместо IN()
:
SELECT column1, column2
FROM table1
WHERE column2 BETWEEN DATEADD(DAY,1,EOMONTH(GETDATE(),-2))
AND EOMONTH(GETDATE(),-1)
Редактировать: я хотел выделить BETWEEN
специально, потому что этот вопрос заставил меня поверить, что была путаница между IN()
, являющимся поиском в списке значений, а не "между" диапазоном значений.
BETWEEN
сам по себе часто может вводить в заблуждение и может быть лучше понят, если переписать его в виде четкого диапазона, включающего основные операторы:
SELECT column1, column2
FROM table1
WHERE column2 >= DATEADD(DAY,1,EOMONTH(GETDATE(),-2))
AND column2 <= EOMONTH(GETDATE(),-1)