PostgreSQLで加算した日付を更新する件
INSERTやUPDATEで、とあるカラムに「今日から1ヵ月後の日付を更新したい」、といった要件があったのですが、 文法エラー多発でハマったので、備忘録としてメモ。
環境
PostgreSQL 9.3
例
こんなテーブルに対して、start_atを今月1日、end_atを3ヵ月後といった更新をしたい場合。
列 | 型 | 修飾語 -----------------+-----------------------------+--------------- id | integer | not null name | character(256) | price | integer | start_at | timestamp without time zone | end_at | timestamp without time zone | INSERT INTO mytable VALUES( 1, 'NAME', 1000, DATE_TRUNC('month', current_timestamp), DATE_TRUNC('month', current_timestamp) + INTERVAL '3month', );
要は、DATE_TRUNC関数と INTERVALを使ってうまいことやるという話です。
連日小ねたで失礼しました( )