I have a stored procedure that has to accept a month as int (1-12) and a year as int. Given those two values, I have to determine the date range of that month. So I need a d
Current month last Date:
select dateadd(dd,-day(dateadd(mm,1,getdate())),dateadd(mm,1,getdate()))
Current month 1st Date:
select dateadd(dd,-day(getdate())+1,getdate())
DECLARE @Month int = 3, @Year int = 2016
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
-- First date of month
SET @StartDate = DATEADD(MONTH, @Month-1, DATEADD(YEAR, @Year-1900, 0));
-- Last date of month
SET @EndDate = DATEADD(SS, -1, DATEADD(MONTH, @Month, DATEADD(YEAR, @Year-1900, 0)))
This will return first date and last date with time component.
select [FirstDay Of The Month] as Text ,convert(varchar,dateadd(d,-(day(getdate()-1)),getdate()),106) 'Date'
union all
select [LastDay Of The Month], convert(varchar,dateadd(d,-day(getdate()),dateadd(m,1,getdate())),106)