hi all
finally i used this code
DECLARE @date1 DATETIME, @date2 DATETIME, @date3 DATETIME, @lastdate DATETIME, @totalMonths INT,@totalDays INT,@counter INT
SET @date1 = '10/22/2011'SET @date2 = '05/25/2012'
SET @totalMonths = DATEDIFF(m, @date1, @date2)
CREATE TABLE #temp_months
(start datetime, [end] datetime)
SET @counter = 0
SELECT @lastdate= DATEADD( D, -1, DATEADD( mm, DATEDIFF( m, 0, @date1 ) + 1, 0 ) )+1;
WHILE @counter <@totalMonths
BEGIN
SELECT @totalDays=DATEDIFF (d,@date1,@lastdate)
SELECT @date3=DATEADD(dd,-(DAY(DATEADD(mm,1,@date1))),DATEADD(mm,1,@date1))
INSERT INTO #temp_months(start,[end]) VALUES (@date1,@date3)
SET @counter = @counter + 1
SET @date1=@lastdate
SET @lastdate = DATEADD(Month, 1, @date1)
END
SELECT * FROM #temp_months
drop table #temp_months