跳到主要内容

76、MySQL DATE_ADD() 函数

MySQL DATE_ADD() 函数用于向日期添加指定的时间间隔

DATE_ADD(date,INTERVAL expr type)

参数 说明
date 合法的日期表达式
expr 希望添加的时间间隔
type 时间间隔的类型

type 参数可选值如下

说明
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 年.月

范例

我们先使用 NOW() 函数获取当前的时间

SELECT NOW();

输出结果如下

mysql> SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2017-05-18 09:01:25 |
+---------------------+

然后使用 DATE_ADD() 来获得 30 天后的时间

SELECT DATE_ADD(NOW(),INTERVAL 30 DAY );

输出结果如下

mysql> SELECT DATE_ADD(NOW(),INTERVAL 30 DAY );
+----------------------------------+
| DATE_ADD(NOW(),INTERVAL 30 DAY ) |
+----------------------------------+
| 2017-06-17 09:03:49              |
+----------------------------------+

如果我们想给当前时间加上 1天又1小时,那么可以使用下面的 SQL 语句

SELECT NOW(), DATE_ADD(NOW(),INTERVAL 1.1 DAY_HOUR );

输出结果如下

mysql> SELECT NOW(), DATE_ADD(NOW(),INTERVAL 1.1 DAY_HOUR );
+---------------------+----------------------------------------+
| NOW()               | DATE_ADD(NOW(),INTERVAL 1.1 DAY_HOUR ) |
+---------------------+----------------------------------------+
| 2017-05-18 09:08:47 | 2017-05-19 10:08:47                    |
+---------------------+----------------------------------------+