MySQL DATE_ADD 函数有助于对日期值执行算术运算。或者说,它将用户指定的间隔添加到给定日期,并返回日期或日期时间。
在本文中,我们将通过一个示例展示如何使用 DATE_ADD 函数将指定的间隔添加到给定的日期表达式中。
MySQL DATE_ADD 语法
DATE_ADD 函数的基本语法是:
DATE_ADD(Date, INTERVAL expression Unit);
- Date:它接受字符串格式的 DateTime 值或日期。
- Expression:您需要指定要添加的值或单位数。例如,2 DAY 表示添加两天。此参数接受负值表示负间隔。
- Unit:它接受从 Microsecond 到 Year 的单位值。
MySQL DATE_ADD 函数示例
以下是示例列表。下面的查询有助于您理解 DATE_ADD 函数的用法。
在此 DATE_ADD 示例中,我们将 1000 微秒、30 秒和 12 分钟添加到给定的 Datetime (2018-12-31 23:30:15.000010)。
提示:我建议您参考 Date method 文章,以了解 MySQL Interval 之后的 Units。
SELECT DATE_ADD('2018-12-31 23:30:15.000010', INTERVAL 1000 MICROSECOND);
SELECT DATE_ADD('2018-12-31 23:30:15', INTERVAL 30 SECOND);
SELECT DATE_ADD('2018-12-31 23:30:15', INTERVAL 12 MINUTE);

MySQL DATE_ADD 函数示例 2
在此示例中,首先,我们添加了 12 小时。接下来,我们将 30 天添加到给定的 Datetime 表达式。在第三个语句中,我们添加了 12 周。
SELECT DATE_ADD('2018-12-31 23:30:15', INTERVAL 12 HOUR);
SELECT DATE_ADD('2018-12-31 23:30:15', INTERVAL 30 DAY);
SELECT DATE_ADD('2018-12-31 23:30:15', INTERVAL 12 WEEK);

示例 3
在此 DATE_ADD 函数示例中,我们将 12 个月、3 个季度和 6 年添加到给定的 Datetime 表达式。
SELECT DATE_ADD('2018-12-31 23:30:15', INTERVAL 12 MONTH);
SELECT DATE_ADD('2018-12-31 23:30:15', INTERVAL 3 QUARTER);
SELECT DATE_ADD('2018-12-31 23:30:15', INTERVAL 6 YEAR);

这里,首先,我们添加了 33 秒和 10000 微秒。第二个语句添加了 15 分钟、30 秒和 10005 微秒。第三个语句将 12 分钟和 34 秒添加到给定的 DateTime。
SELECT DATE_ADD('2018-12-31 23:30:15.000010', INTERVAL '33.10000' SECOND_MICROSECOND);
SELECT DATE_ADD('2018-12-31 23:30:15.000010', INTERVAL '15.30.10005' MINUTE_MICROSECOND);
SELECT DATE_ADD('2018-12-31 23:30:15.000010', INTERVAL '12.34' MINUTE_SECOND);

MySQL DATE_ADD 示例 5
在此 DATE_ADD 函数示例中,首先,我们添加了 10 小时、11 分钟、19 秒和 11005 微秒。第二个语句添加了 20 小时、10 分钟和 11 秒。第三个语句将 22 小时和 09 分钟添加到给定的 DateTime。
SELECT DATE_ADD('2018-12-31 23:30:15.000010', INTERVAL '10:11.19.11005' HOUR_MICROSECOND);
SELECT DATE_ADD('2018-12-31 23:30:15.000010', INTERVAL '20:10.11' HOUR_SECOND);
SELECT DATE_ADD('2018-12-31 23:30:15.000010', INTERVAL '22:09' HOUR_MINUTE);

我们添加了 31 天、10 小时、11 分钟、19 秒和 11005 微秒。第二个语句添加了 31 天、10 小时、11 分钟和 19 秒。第三个语句将 60 天、20 小时和 19 分钟添加到给定的 DateTime。
SELECT DATE_ADD('2018-12-31 23:30:15.000010', INTERVAL ' 31 10:11.19.11005' DAY_MICROSECOND);
SELECT DATE_ADD('2018-12-31 23:30:15.000010', INTERVAL ' 31 10:11.19' DAY_SECOND);
SELECT DATE_ADD('2018-12-31 23:30:15.000010', INTERVAL ' 60 20:19' DAY_MINUTE);

在这里,我们将 06 年添加到给定的 DateTime 值。
SELECT DATE_ADD('2018-12-31 23:30:15.000010', INTERVAL '06-12' YEAR_MONTH);
SELECT DATE_ADD('2018-12-31 23:30:15', INTERVAL '06-12' YEAR_MONTH);
