- MySQL
- 2022-10-04 - 更新:2024-08-30
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'