Not 100% sure what you are after as far as results go, but maybe this will get you going?WITH Cte (n) AS( SELECT 0 UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 )SELECT DATEADD(DAY, (DATEDIFF(DAY, '1899-12-30', GETDATE()) / 7) * 7 + (7 * -n), '1899-12-30') AS StartDate ,DATEADD(DAY, ((DATEDIFF(DAY, '1899-12-30', GETDATE()) / 7) * 7 + (7 * -n)) + 6, '1899-12-30') AS EndDateFROM Cte