MySQLで日付や時間を計算をするにはどうすればよいか調べてみました。
指定の日付・時間を足した日付を求める関数は
ADDDATE('日付',INTERVAL 式や値 型)
DATE_ADD('日付',INTERVAL 式や値 型)
ADDTIME('日付や時間','時間')
逆に日付・時間を引いた日付を求める関数は
SUBDATE('日付',INTERVAL 式や値 型)
DATE_SUB('日付',INTERVAL 式や値 型)
SUBTIME('日付や時間','時間')
ADDDATEとDATE_ADD
SUBDATEとDATE_SUB
は同義となります。
SELECT DATE_ADD('2008-11-12 00:00:00',INTERVAL 4 YEAR);
=> 2012-11-12 00:00:00
SELECT DATE_SUB('2008-11-12 00:00:00',INTERVAL 4 YEAR);
=> 2004-11-12 00:00:00
SELECT ADDTIME('2008-11-12 00:00:00','23:59:59');
=> 2008-11-12 23:59:59
SELECT SUBTIME('2008-11-12 00:00:00','23:59:59');
=> 2008-11-11 00:00:01
と返ってきます。
DATE_ADD ,ADDDATE
DATE_SUB ,SUBDA
での型の一覧は以下の通りです。
マイクロ秒
MICROSECOND
秒
SECOND
分
MINUTE
時間
HOUR
日
DAY
月
MONTH
年
YEAR
'秒.マイクロ秒'
SECOND_MICROSECOND
'分.マイクロ秒'
MINUTE_MICROSECOND
'分:秒'
MINUTE_SECOND
'時間.マイクロ秒'
HOUR_MICROSECOND
'時間:分:秒'
HOUR_SECOND
'時間:分'
HOUR_MINUTE
'日.マイクロ秒'
DAY_MICROSECOND
'日 時間:分:秒'
DAY_SECOND
'日 時間:分'
DAY_MINUTE
'日 時間'
DAY_HOUR
'年-月'
YEAR_MONTHTE
コメントする