Я часто провожу быструю проверку "на прошлой неделе", и следующее имеет тенденцию работать хорошо для меня и включает сегодня.
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
SET @StartDate = Getdate() - 7 /* Seven Days Earlier */
SET @EndDate = Getdate() /* Now */
SELECT id
FROM mytable
WHERE date BETWEEN @StartDate AND @Enddate
Если вы не хотите включать сегодня, просто вычтите дополнительный день из @EndDate. Если я сегодня выберу эти две переменные, получу
@ StartDate 2015-11-16 16: 34: 05.347 / * Последний понедельник * /
@ EndDate 2015-11-23 16: 34: 05.347 / * В этот понедельник * /
Если бы я хотел с воскресенья по воскресенье, у меня было бы следующее.
SET @StartDate = Getdate() - 8 /* Eight Days Earlier */
SET @EndDate = Getdate() - 1 /* Yesterday */
@ StartDate 2015-11-15 16: 34: 05.347 / * Предыдущее воскресенье * /
@ EndDate 2015-11-22 16: 34: 05.347 / * В прошлое воскресенье * /