DECLARE @month AS INT = 4
DECLARE @Year AS INT = 2018
;WITH N(N)AS
(SELECT 1 FROM(VALUES(1),(1),(1),(1),(1),(1))M(N)),
tally(N)AS(SELECT ROW_NUMBER()OVER(ORDER BY N.N)FROM N,N a)
SELECT N day,replace(convert(NVARCHAR,datefromparts(@year,@month,N), 103), ' ', '-') date,DATENAME(DW, convert(NVARCHAR,datefromparts(@year,@month,N))) as "days" FROM tally
WHERE N <= day(EOMONTH(datefromparts(@year,@month,1))) and DATENAME(DW, convert(NVARCHAR,datefromparts(@year,@month,N))) not in ('Saturday','Sunday')