首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL ADDDATE() 函數詳解:日期加減運算實用指南

     編輯:MySQL 綜合教學

函數語法

ADDDATE(date, INTERVAL expr unit)、ADDDATE(expr, days)

當第二個參數使用 INTERVAL 形式時,ADDDATE() 是 DATE_ADD() 的同義詞。對應的減法函數為 SUBDATE()(DATE_SUB() 同義詞)。

用法示例

1. INTERVAL 形式(推薦,語義清晰)

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 |
+---------------------------------------------------------+

2. 整數天數形式

mysql> SELECT ADDDATE('1998-01-02', 31);
+---------------------------------------------------------+
| ADDDATE('1998-01-02', 31) |
+---------------------------------------------------------+
| 1998-02-02 |
+---------------------------------------------------------+

第二個參數為整數時,MySQL 視為天數直接加到日期上。

常見單位參數

單位含義
MICROSECOND微秒
SECOND秒
MINUTE分
HOUR時
DAY天
WEEK週
MONTH月
QUARTER季度
YEAR年
SECOND_MICROSECOND秒.微秒
MINUTE_MICROSECOND分:秒.微秒
MINUTE_SECOND分:秒
HOUR_MICROSECOND時:分:秒.微秒
HOUR_SECOND時:分:秒
HOUR_MINUTE時:分
DAY_MICROSECOND天 時:分:秒.微秒
DAY_SECOND天 時:分:秒
DAY_MINUTE天 時:分
DAY_HOUR天 時
YEAR_MONTH年-月

實戰建議

  • 優先使用 DATE_ADD()/DATE_SUB(),語義更明確。
  • 涉及月份加減時注意月末邊界:ADDDATE('2023-01-31', INTERVAL 1 MONTH) → 2023-02-28(非閏年)。
  • 可用於 WHERE 條件動態計算時間窗口:WHERE create_time >= ADDDATE(NOW(), INTERVAL -7 DAY)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved