MySQLで使用できる日付の加算や減算等の関数をご紹介します。
現在の日付を返す CURDATE()
現在の日付を返します。
CURRENT_DATE()
, CURRENT_DATEはCURDATE()
のシノニムです。
mysql> SELECT CURDATE();
-> '2008-06-13'
mysql> SELECT CURDATE() + 0;
-> 20080613
日付部分を抽出する DATE()
書式:DATE(expr)
日付expr
の日付部分を抽出します。
mysql> SELECT DATE('2003-12-31 01:02:03');
-> '2003-12-31'
日付の加算 DATE_ADD()
書式:DATE_ADD(date, INTERVAL expr unit)
日付値に時間値 (間隔) を加算します。
ADDDATE()
はDATE_ADD()
のシノニムです。
unit
…YEAR,MONTH,DAY等
mysql> SELECT DATE_ADD('2008-01-02', INTERVAL 31 DAY);
-> '2008-02-02'
mysql> SELECT ADDDATE('2008-01-02', INTERVAL 31 DAY);
-> '2008-02-02'
日付を指定された書式に設定 DATE_FORMAT()
書式:DATE_FORMAT(date, format)
日付を指定された書式に設定します。
mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');
-> 'Sunday October 2009'
mysql> SELECT DATE_FORMAT('2007-10-04 22:23:00', '%H:%i:%s');
-> '22:23:00'
mysql> SELECT DATE_FORMAT('1900-10-04 22:23:00', '%D %y %a %d %m %b %j');
-> '4th 00 Thu 04 10 Oct 277'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H %k %I %r %T %S %w');
-> '22 22 10 10:23:00 PM 22:23:00 00 6'
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
-> '1998 52'
mysql> SELECT DATE_FORMAT('2006-06-00', '%d');
-> '00'
日付の減算 DATE_SUB()
書式:DATE_SUB(date, INTERVAL expr unit)
日付から時間値 (間隔) を引きます。
SUBDATE()
はDATE_SUB()
のシノニムです。
mysql> SELECT DATE_SUB('2005-01-01 00:00:00', INTERVAL '1 1:1:1' DAY_SECOND);
-> '2004-12-30 22:58:59'
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
-> '1997-12-02'
続きを読む…»