Я предполагаю, что столбец date
на самом деле хранится в виде текста. Если это так, самое простое решение - преобразовать его в дату и время, а затем сравнить:
Select ...
From MyTable
Where Cast(Replace([Date],'/','') + '01' As DateTime)
> DateAdd(m, -9
, DateAdd(d
, -Day(GetDate())
, DateAdd(d, DateDiff(d, 0, GetDate() ), 0)))
Следующий фрагмент кода используется для удаления части времени из сегодняшней даты:
DateAdd( d, DateDiff(d, 0, GetDate() ), 0 )
Обновление
Учитывая ваше дополнение, вам нужно лишь небольшое изменение запроса выше:
Select ...
From MyTable
Where Cast(Replace([Date],'M','') + '01' As DateTime)
> DateAdd(m, -9
, DateAdd(d
, -Day(GetDate())
, DateAdd(d, DateDiff(d, 0, GetDate() ), 0)))
Обновление
Учитывая, что вы теперь преобразовали столбец date
в datetime
, вы можете упростить свой запрос:
Select ...
From MyTable
Where [Date] > DateAdd(m, -9, DateAdd(d
, -Day(GetDate())
, DateAdd(d, DateDiff(d, 0, GetDate() ), 0)))