From PostgreSQL wiki
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
I would suggest
SELECT date_trunc('month', $1 + interval '1 month')::date - 1;
instead of:
SELECT (date_trunc('MONTH', $1) + INTERVAL '1 MONTH - 1 day')::date;