Click here to Skip to main content
15,890,438 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
See more:
Hi All, Can Anyone help me out How to get Number of days In a month excluding Sunday's without passing any parameter in sql server

Thank's in advance
Posted

Hi ... Try this

SQL
;WITH MONTHINFOCTE AS (
	 SELECT DAY(DATEADD(mm,DATEDIFF(mm,-1,GETDATE()),-1)) TotalDaysInMonth,
	 DATEADD(MM,DATEDIFF(MM,0,GETDATE()),0) Start_OF_Month,
	 DATEADD(MM,DATEDIFF(MM,0,DATEADD(MM,1,GETDATE())),-1) End_OF_Month
),
DATESCTE AS (
	 SELECT Start_OF_Month AS SM,DATEPART(DW,Start_OF_Month) DAYNUMBER 
	 FROM MONTHINFOCTE
	 UNION ALL
	 SELECT DATEADD(DD,1,SM),DATEPART(DW,SM) FROM DATESCTE 
	 WHERE SM < (SELECT End_OF_Month FROM MONTHINFOCTE)
)

	SELECT  TotalDaysInMonth, COUNT(*) TotalSundays,
	TotalDaysInMonth- COUNT(*) AS NoOfWeekDays
	FROM DATESCTE,MONTHINFOCTE WHERE DAYNUMBER = 7
	GROUP BY DAYNUMBER,TotalDaysInMonth


Happy coding...
 
Share this answer
 
Comments
Nilesh M. Prajapati 25-Sep-17 8:21am    
in following code

UNION ALL
SELECT
DATEADD(DD,1,SM),
DATEPART(DW,SM)
FROM DATESCTE
WHERE SM < (SELECT End_OF_Month FROM MONTHINFOCTE)

logic for Day number should be DATEPART(DW,DATEADD(DD,1,SM))
Let try code in C#
C#
int CountDay(int year, int month)
        {
            int NoOfSunday = 0;
            var firstDay = new DateTime(year, month, 1);

            var day29 = firstDay.AddDays(28);
            var day30 = firstDay.AddDays(29);
            var day31 = firstDay.AddDays(30);

            if ((day29.Month == month && day29.DayOfWeek == DayOfWeek.Sunday)
            || (day30.Month == month && day30.DayOfWeek == DayOfWeek.Sunday)
            || (day31.Month == month && day31.DayOfWeek == DayOfWeek.Sunday))
            {
                NoOfSunday= 5;
            }
            else
            {
               NoOfSunday = 4;
            }

            int NumOfDay = DateTime.DaysInMonth(year, month);

            return NumOfDay - NoOfSunday;
        }


And you can visit here to get more sample:
How do i count SUNDAY's in a particular MONTH[^]
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900