You can use the following function to search for a week between two dates:
CREATE FUNCTION [dbo].[fGetWeeksList] ( @StartDate DATETIME ,@EndDate DATETIME ) RETURNS TABLE AS RETURN ( SELECT DATEADD(DAY,-(DATEPART(DW,DATEADD(WEEK, x.number, @StartDate))-2),DATEADD(WEEK, x.number, @StartDate)) as [StartDate] ,DATEADD(DAY,-(DATEPART(DW,DATEADD(WEEK, x.number + 1, @StartDate))-1) ,DATEADD(WEEK, x.number + 1, @StartDate)) AS [EndDate] FROM master.dbo.spt_values x WHERE x.type = 'P' AND x.number <= DATEDIFF(WEEK, @StartDate, DATEADD(WEEK,0,CAST(@EndDate AS DATE)))
Renato vale
source share