DECLARE @dt DATETIME = '20120111';
;WITH N(n) AS
(SELECT 1 UNION ALL SELECT n+1 FROM N WHERE n < 36)
SELECT
DATEADD(mm,DATEDIFF(mm,0,@dt)-n,0)
FROM
N;
Oh, be careful, Sunita. That's a "counting Recursive CTE". Please see the following article for why you shouldn't do such a thing even for such a small number of rows. http://www.sqlservercentral.com/articles/T-SQL/74118/