Вы можете использовать этот SQL для определения понедельника и пятницы недели данной даты.
SET DATEFIRST 1
DECLARE @Date date = GETDATE() --give a date here
SELECT
@Date [SelectedDate],
DATENAME(dw, @Date) [SelectedWD],
DATEADD(dd, -(DATEPART(dw, @Date)-1), @Date) [WeekStart],
DATENAME(dw, DATEADD(dd, -(DATEPART(dw, @Date)-1), @Date)) [WeekStartWD],
DATEADD(dd, 7-(DATEPART(dw, @Date)+2), @Date) [WeekEnd],
DATENAME(dw, DATEADD(dd, 7-(DATEPART(dw, @Date)+2), @Date)) [WeekEndWD]
**Example output**
SelectedDate SelectedWD WeekStart WeekStartWD WeekEnd WeekEndWD
2012-03-16 Friday 2012-03-12 Monday 2012-03-16 Friday
-------------------------------------------- - РЕДАКТИРОВАТЬ ---------------------------------------------
1008 * ИСПОЛЬЗОВАНИЕ *
Это дает вам результаты за 1 неделю (только по рабочим дням)
SET DATEFIRST 1
DECLARE @Date date = GETDATE() --give a date here
DECLARE @WeekStart Date, @WeekEnd Date
select @WeekStart = DATEADD(dd, -(DATEPART(dw, @Date)-1), @Date),
@WeekEnd = DATEADD(dd, 7-(DATEPART(dw, @Date)+2), @Date)
SELECT * FROM myTable WHERE myDate BETWEEN @WeekStart AND @WeekEnd