翌月の月初日から 1 日引きます。
db=# SELECT DATE_TRUNC('month', now() + '1 months') + '-1 days'; ?column? ------------------------ 2010-02-28 00:00:00+09 (1 row)
任意の日付指定で時間も23:59にしたいならこっち
db=# SELECT DATE_TRUNC('month', date('2010-04-30')) + '1 months' + '-1 seconds'; ?column? ------------------------ 2010-04-30 23:59:59+09 (1 行)
ネタ元