PostgreSQL で月末日の取得

翌月の月初日から 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 行)

ネタ元