In this article, I founda sql query to find first, last and total days in a month from the current orany date using inbuilt functions such as DATEADD(),DATEDIFF() and DAYS() functions.Here i am using current date. If you want to get any date then replace your date with GETDATE()
DECLARE
@CurrentDate DATE=GETDATE(),
@FirstDate DATE,
@LastDate DATE,
@TotalDays INT
SET @FirstDate=(SELECT DATEADD(dd,-DAY(@CurrentDate)+1,@CurrentDate))
SET @LastDate=
(SELECT DATEADD(dd,-DAY(DATEADD(mm,1,@CurrentDate)),
DATEADD(mm,1,@CurrentDate)))
SET @TotalDays=(DATEDIFF(D,@FirstDate,@LastDate))+1
SELECT @FirstDate[FirstDate of Month] ,@LastDate [LastDate ofMonth], @TotalDays [TotalDays in Month]
Output
--------
FirstDate of Month LastDate of Month TotalDaysin Month
2016-03-01 2016-03-31 31