Friday, December 28, 2012

First & Last Dates of Current, Previous & Next Month


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


No comments:

Post a Comment