I want to take all Dates of an year based on Day Name. For example If I pass Thu/Thursday and 2020 (Year)
. I need to get all the Dates which are coming under Thursday on 2020
. I might sent one or more Day names For example I might sent Thursday, Friday
. I couldn’t find any answer to this.
Advertisement
Answer
I would use a recursive CTE to generate all the dates and then filter the ones you want:
x
with dates as (
select datefromparts(2020, 1, 1) as dte
union all
select dateadd(day, 1, dte)
from dates
where dte < datefromparts(2020, 12, 31)
)
select d.*
from dates d
where datename(weekday, dte) = 'Thursday'
option (maxrecursion 0);