for example:
--fromdate todate
--2020/10/1 2020/11/01
Output should be like:
--Days dayname
------- ---------------
--2020/10/1 Monday
.. ..
for example:
--fromdate todate
--2020/10/1 2020/11/01
Output should be like:
--Days dayname
------- ---------------
--2020/10/1 Monday
.. ..
You can use DATENAME to get the WEEKDAY
and filter by it:
DATENAME ( WEEKDAY , my_date )
Something like this (the code for generating days is from here)
declare @dt datetime, @dtEnd datetime
set @dt = '2020/10/1'
set @dtEnd = '2020/11/01'
select dateadd(day, number, @dt)
,DATENAME ( WEEKDAY , dateadd(day, number, @dt) )
from
(select number from master.dbo.spt_values
where [type] = 'P'
) n
where dateadd(day, number, @dt) < @dtEnd
AND DATENAME ( WEEKDAY , dateadd(day, number, @dt) ) NOT IN ('Saturday', 'Sunday')
I think this query works well.
declare @result table
(
Days varchar(10),
DayName varchar(20)
)
declare @fromDate date = '2020/10/01'
declare @toDate date = '2020/11/01'
while @fromDate <= @toDate
begin
if DATENAME(weekday, @fromDate) not in ('Saturday', 'Sunday')
begin
insert into @result(Days, DayName)
values(@fromDate, DATENAME(weekday, @fromDate))
end
set @fromDate = DATEADD(day, 1, @fromDate)
end
select *
from @result