MySQL の日付演算のお話。
MySQL では DATE_ADD() 関数で日付の加算ができます。
同じように DATE_SUB() 関数で日付の減算ができます。が。こっちはあんまり使いません。
MySQL 4.1 リファレンスマニュアル :: 6.3.4 日付と時刻関数
現在から 10 日後の日付を取得する
> SELECT DATE_ADD( now(), interval 10 day )
ってな感じで使います。
これが
> SELECT now() + interval 10 day
とも書ける事が判明。
MONTH、YEAR_MONTH、YEAR のいずれかを加えた結果の日付が、新しい月の最大日数より大きい場合、新しい月の最大日数に調整される。
という事も判明。
2006/07/31 の 7 ヵ月後の日付を取得する
> SELECT '2006-07-31' + INTERVAL 7 MONTH 2006-02-28
2006/07/31 の 7 ヵ月後 + 1日後の日付を取得する
> SELECT ( '2006-07-31' + INTERVAL 7 MONTH ) + INTERVAL 1 DAY 2007-03-01
結果は上と同じ
> SELECT ( '2006-07-31' + INTERVAL 1 DAY) + INTERVAL 7 MONTH 2007-03-01