Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find Mondays between 2 dates

I need to display dates of all Mondays in the given date range.

For example, if my start date is 01/05/2015 and end date is 31/05/2015, I need to show

04/05/2015
11/05/2015
18/05/2015
25/05/2015

How is it possible?

like image 478
Alias Varghese Avatar asked Sep 02 '25 15:09

Alias Varghese


1 Answers

This procedure is independent from regions and languages.

Please note the first line with SET DATEFIRST 1.

SET DATEFIRST 1; -- First day of the week is set to monday

DECLARE @DateFrom DateTime ='20150601', @DateTo DateTime = '20150630' ;

WITH CTE(dt)
AS
(
      SELECT @DateFrom
      UNION ALL
      SELECT DATEADD(d, 1, dt) FROM CTE
      WHERE dt < @DateTo
)
SELECT dt FROM CTE  where datepart ("dw", dt) = 1;
like image 195
SQL Police Avatar answered Sep 05 '25 07:09

SQL Police