ADDDATE() 是 MySQL 內建的日期運算函式,支援兩種呼叫形式,功能等同於 DATE_ADD()。本文詳細說明語法、參數單位與實際範例。
-- 形式一:INTERVAL 區間語法(等同 DATE_ADD) ADDDATE(date, INTERVAL expr unit) -- 形式二:直接加天數 ADDDATE(expr, days)
unit 可為 MICROSECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR 等。對應的減法函式為 SUBDATE()(等同 DATE_SUB())。
mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| DATE_ADD('1998-01-02', INTERVAL 31 DAY) |
+---------------------------------------------------------+
| 1998-02-02 |
+---------------------------------------------------------+
mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| ADDDATE('1998-01-02', INTERVAL 31 DAY) |
+---------------------------------------------------------+
| 1998-02-02 |
+---------------------------------------------------------+
mysql> SELECT ADDDATE('1998-01-02', 31);
+---------------------------------------------------------+
| ADDDATE('1998-01-02', 31) |
+---------------------------------------------------------+
| 1998-02-02 |
+---------------------------------------------------------+
兩種寫法結果相同。實務上若需加減月份、年份等非天數單位,必須使用 INTERVAL 形式。