確かに、正常値になりますね。。timestampに書き換えたいと思います。 色々試したところ、 select date_trunc('month','2004/3/01'::abstime+'1 months'); を select date_trunc('month','2004/3/01'::abstime)+'1 months'; とすることで回避できました。 これってどういう解釈なんでしょうね。 PostgreSQLにとっての理屈があるとは思うのですが。。 とにかくありがとうございました。