Вы можете использовать еще DATEADD()
доброту, чтобы вернуться к предыдущему году:
where theDate >= DATEADD(mm, -1, GETDATE())
OR
(theDate <= DATEADD(week,-52,convert(datetime,GETDATE()))
and
theDate >= DATEADD(mm,-1,DATEADD(week,-52,convert(datetime,GETDATE()))))
Вычитая 52 недели с 30.06.2011, вы возвращаетесь с 01.07.2010 по вашему запросу ...Затем, используя исходное вычитание от 1 месяца для нижней границы.
Вы также можете переключить все это на недели ...
where theDate >= DATEADD(week, -4, GETDATE())
OR
(theDate <= DATEADD(week,-52,convert(datetime,GETDATE()))
and
theDate >= DATEADD(week,-56,convert(datetime,GETDATE())))