declare @DateZero datetime
declare
@MonthsSinceZero int
declare
@FirstofCurrentMonth datetime
declare
@FirstofNextMonth datetime
declare
@FirstofPreviousMonth datetime
declare
@LastofCurrentMonth datetime
declare
@LastofNextMonth datetime
declare
@LastofPreviousMonth datetime
set @DateZero = 0
select @DateZero as DateZero
set
@MonthsSinceZero = DATEDIFF(m, @DateZero, GETDATE())
-- CURRENT MONTH
set
@FirstofCurrentMonth = DATEADD(mm, @MonthsSinceZero, @DateZero)
select
@FirstofCurrentMonth as FirstofCurrentMonth
set
@LastofCurrentMonth = DATEADD(s, -1, DATEADD(mm, @MonthsSinceZero +
1, @DateZero))
select
@LastofCurrentMonth as LastofCurrentMonth
-- NEXT MONTH
set
@FirstofNextMonth = DATEADD(mm, @MonthsSinceZero
+ 1, @DateZero)
select
@FirstofNextMonth as FirstofNextMonth
set
@LastofNextMonth = DATEADD(s, -1, DATEADD(mm, @MonthsSinceZero +
2, @DateZero))
select
@LastofNextMonth as LastofNextMonth
-- PREVIOUS
MONTH
set
@FirstofPreviousMonth = DATEADD(mm, @MonthsSinceZero -
1, @DateZero)
select
@FirstofPreviousMonth as FirstofPreviousMonth
set
@LastofPreviousMonth = DATEADD(s, -1, DATEADD(mm, @MonthsSinceZero,
@DateZero))
select
@LastofPreviousMonth as LastofPreviousMonth
