tags:

views:

39

answers:

2

How to get last 3 months records from the table.

SELECT * from table where month > CURRENT_DATE-120 and month < CURRENT_DATE order by month;

I have used the above query is it correct? shall I use this for get last 3 month record from the table.

+1  A: 

Try that:

SELECT *
FROM table
WHERE month BETWEEN EXTRACT(MONTH FROM NOW() - INTERVAL '3 months')
AND EXTRACT(MONTH FROM NOW())
ORDER BY month
;
analogue
And how do you think that is going to work come January? (It won't)
Scott Bailey
It won't I know, but the question implies it as we only know the existence of the month column and we don't know if a year exists in his relation
analogue
+4  A: 

You can use built-in INTERVAL instruction

Check how this works:

SELECT CURRENT_DATE - INTERVAL '3 months'

and you can rewrite your sql to:

SELECT * from table where date >  CURRENT_DATE - INTERVAL '3 months'

(not checked but this should give you ide how to use INTERVAL instruction)

Lukasz Dziedzia