PostgreSQLで日付の操作(1か月前とか)

はい、oracleに慣れ過ぎていて、postgreSQLの構文が覚えられません。
ということでメモ。

1か月後とか2か月後といった入力は、intervalを使うと見やすくなります。

select to_date('20180101', 'YYYYMMDD') - interval '1 month'

これで2018/01/01の1か月前。
マイナスをプラスにすれば1か月後。

monthの部分は

day
week
month
year

ただ、これ続きがあって、date型ではなくtimestamp型だとちょっと挙動が変わる。

select cast('2018-01-01' as timestamp) + '-1 months'


時間が無いのとあまり使わないのでちゃんと調べないのですが、
そのうち何がどうなのか調べようかと思います。



参考:
http://neos21.hatenablog.com/entry/2017/05/04/080000
http://sak.cool.coocan.jp/w_sak3/doc/sysbrd/psql_k16.htm
https://www.postgresql.jp/document/9.4/html/datatype-datetime.html