Hi,
You can do something like this...
declare @StartDate datetime
declare @EndDate datetime
select @StartDate = '2011-03-01' , @EndDate = '2011-11-01'
;WITH cte AS (
SELECT CASE WHEN DATEPART(Day,@StartDate) = 1 THEN @StartDate
ELSE DATEADD(Month,DATEDIFF(Month,0,@StartDate)+1,0) END AS myDate,
CASE WHEN DATEPART(Day,@StartDate) = 1 THEN DATEADD(Day,-1,(DATEADD(Month,1,@StartDate)))
ELSE DATEADD(Day,-1,(DATEADD(Month,1,DATEADD(Month,DATEDIFF(Month,0,@StartDate)+1,0)))) END AS myDate2
UNION ALL
SELECT DATEADD(Month,1,myDate), DATEADD(Month,1,myDate2)
FROM cte
WHERE DATEADD(Month,1,myDate) <= @EndDate
)
SELECT myDate, myDate2
FROM cte
OPTION (MAXRECURSION 0)
Change the query according to your need.
Mark as answer if it helps you.
-Somu
Amritha444, if this helps please login to Mark As Answer. | Alert Moderator