すぐに忘れてしまう自分用のSQLメモ。
あるカラムの日付を元にintervalを使って、日付を計算(加算・減算)する。
intervalで、年(year)を計算(加算・減算)する
(例)テーブル:test_tbl
◆id:プライマリ
◆customer_id:顧客ID
◆item:商品名
◆term:保証期間(年)
◆start_date:購入日
上記、termとstart_dateから、保証終了日(end_date)を計算する。
【保証終了日が『 [term]年後 』の時】
SELECT
id,
customer_id,
item,
term,
date_format(start_date, '%Y/%m/%d') as 'start_date',
date_format(start_date + interval term year, '%Y/%m/%d') as 'end_date'
FROM
test_tbl
※上記は、date_addを使っても同じ結果(減算の場合は、『- term』とする)
date_format(date_add(start_date, interval term year), '%Y/%m/%d') as 'end_date'
【保証終了日が『 [term]年後-1日 』の時】
SELECT
id,
customer_id,
item,
term,
date_format(start_date ,'%Y/%m/%d') as 'start_date',
date_format((start_date + interval term) - interval 1 day, '%Y/%m/%d') as 'end_date'
FROM
test_tbl