December 28, 2011

Find previous month data in SQL

We have following records in our table.

image

Now we need to fetch previous month data only.
Means output should be:

image

T-SQL

DECLARE @TablePM TABLE
([DATE] DATETIME)

INSERT INTO @TablePM
SELECT '2011-12-28 11:26:03.653' UNION ALL
SELECT '2011-12-18 11:26:03.653' UNION ALL
SELECT '2011-12-18 11:26:03.653' UNION ALL
SELECT '2011-12-17 11:26:03.653' UNION ALL
SELECT '2011-11-28 11:26:03.653' UNION ALL
SELECT '2011-11-30 11:26:03.653' UNION ALL
SELECT '2011-11-08 11:26:03.653' UNION ALL
SELECT '2011-11-27 11:26:03.653' UNION ALL
SELECT '2011-11-21 11:26:03.653' UNION ALL
SELECT '2011-11-01 11:26:03.653' UNION ALL
SELECT '2012-11-28 11:26:03.653' UNION ALL
SELECT '2012-12-28 11:26:03.653'

SELECT * FROM @TablePM
WHERE
DATEPART(M, [DATE]) = DATEPART(M, DATEADD(M, -1, GETDATE()))
AND

DATEPART(YEAR, [DATE]) = DATEPART(YEAR, DATEADD(M, -1, GETDATE()))

That’s It.
Enjoy Learning.

2 comments:

Post a Comment