get last three month records from table

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.


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 an idea how to use INTERVAL instruction)


Try that:

SELECT *
FROM table
WHERE month BETWEEN EXTRACT(MONTH FROM NOW() - INTERVAL '3 months')
AND EXTRACT(MONTH FROM NOW())
ORDER BY month
;