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