MySQL ADDDATE() 用法与实例
在 MySQL 中, ADDDATE() 函数被用来向指定日期添加指定的时间量。 这对我们要获取几天后或者几天前的日期很有帮助。
          
            发布于
            
          
        
      在 MySQL 中, ADDDATE() 函数被用来向指定日期添加指定的时间量。 这对我们要获取几天后或者几天前的日期很有帮助。
例如,您可以使用它将 10 天添加到给定日期。您也可以将 年、月、周、时间等时间量添加到某个日期值上。
本文将说明 MySQL ADDDATE() 函数的用法并给出了几个实例。
语法
您可以通过以下两种方式使用 MySQL ADDDATE() 函数:
ADDDATE(expr, days)
ADDDATE(date, INTERVAL expr unit)
INTERVAL expr unit 是一种时间段类型的值。 您可以在 unit 出指定单位, 比如 DAY, MONTH, YEAR, WEEK, HOUR, MINUTE, SECOND 等。
下表列出了可使用的日期时间单位:
| 单位 | 描述 | 
|---|---|
| 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 | 年-月 | 
示例 1 - 添加几天
要计算 2022-12-31 10 天后的日期,请使用下面的语句:
SELECT ADDDATE('2022-12-31', 10);
输出:
+---------------------------+
| ADDDATE('2022-12-31', 10) |
+---------------------------+
| 2023-01-10                |
+---------------------------+在本示例中,由于只是累加天数,所以我们只需要提供一个整数给到第二个参数。当然,您也可以传入一个 INTERVAL 值,如下:
SELECT ADDDATE('2022-12-31', INTERVAL 10 DAY);
输出:
+----------------------------------------+
| ADDDATE('2022-12-31', INTERVAL 10 DAY) |
+----------------------------------------+
| 2023-01-10                             |
+----------------------------------------+示例 2 – 日期单位
您还可以在 ADDDATE() 函数中使用一些日期单位,以添加一些较多的天数,如下:
SELECT
  '2022-12-31' AS 'Date',
  ADDDATE('2022-12-31', INTERVAL 1 WEEK) AS 'Add 1 Week',
  ADDDATE('2022-12-31', INTERVAL 1 MONTH) AS 'Add 1 Month',
  ADDDATE('2022-12-31', INTERVAL 1 YEAR) AS 'Add 1 Year';
输出:
+------------+------------+-------------+------------+
| Date       | Add 1 Week | Add 1 Month | Add 1 Year |
+------------+------------+-------------+------------+
| 2022-12-31 | 2023-01-07 | 2023-01-31  | 2023-12-31 |
+------------+------------+-------------+------------+示例 3 – 时间单位
您还可以在 ADDDATE() 函数中使用一些时间单位,以添加一些较小的时间段,如下:
SELECT
  '2022-12-31' AS 'Date',
  ADDDATE('2022-12-31', INTERVAL 1 HOUR) "Add 1 Hour",
  ADDDATE('2022-12-31', INTERVAL 2 MINUTE) "Add 2 Minutes",
  ADDDATE('2022-12-31', INTERVAL 3 SECOND) "Add 1 Second";
输出:
+------------+---------------------+---------------------+---------------------+
| Date       | Add 1 Hour          | Add 2 Minutes       | Add 1 Second        |
+------------+---------------------+---------------------+---------------------+
| 2022-12-31 | 2022-12-31 01:00:00 | 2022-12-31 00:02:00 | 2022-12-31 00:00:03 |
+------------+---------------------+---------------------+---------------------+示例 4 – 负值
您可以提供一个负值,以表示减去一个指定的时间段。
要计算当前日期的前一天,您可以使用如下语句:
SELECT ADDDATE(CURDATE(), -1);
输出:
+------------------------+
| ADDDATE(CURDATE(), -1) |
+------------------------+
| 2022-12-28             |
+------------------------+负值同样可用于 INTERVAL 值,如下:
SELECT ADDDATE(CURDATE(), INTERVAL -1 DAY);
输出:
+-------------------------------------+
| ADDDATE(CURDATE(), INTERVAL -1 DAY) |
+-------------------------------------+
| 2022-12-28                          |
+-------------------------------------+