MySQL官网是不承认时间直接相加减的,本篇记录时间加减操作需要注意点,加深记忆,避免以后入坑。
先来看看MySQL中常用的内建日期函数
| 函数 | 描述 | 语法 | 
|---|---|---|
| NOW() | 返回当前的日期和时间 | NOW() | 
| CURDATE() | 返回当前的日期,该函数相当于current_date关键字 | CURDATE() | 
| CURTIME() | 返回当前的时间,相当于current_time关键字 | CURTIME() | 
| DATE() | 提取日期或日期/时间表达式的日期部分 | DATE(date) date 参数是合法的日期表达式 | 
| EXTRACT() | 用于返回日期/时间的单独部分,如年、月、日、小时、分钟等 | EXTRACT(unit FROM date) date 参数是合法的日期表达式 | 
| DATE_ADD() | 给日期添加指定的时间间隔 | DATE_ADD(date,INTERVAL expr type) date 是合法的日期表达式,expr 是时间间隔。 | 
| DATE_SUB() | 从日期减去指定的时间间隔 | DATE_SUB(date,INTERVAL expr type) date 是合法的日期表达式,expr 是时间间隔。 | 
| DATEDIFF() | 返回两个日期之间的天数 | DATEDIFF(date1,date2) date1 和 date2 是合法的日期或日期/时间表达式。 | 
| DATE_FORMAT() | 用不同的格式显示日期/时间 | DATE_FORMAT(date,format) date 是合法的日期。format 规定日期/时间的输出格式。 | 
比如说,我们现在想要查询得出当前日期的一天前和五天前的日期,测试SQL语句如下
1  | SELECT NOW(),CURDATE(), CURTIME(), DATE_SUB(CURDATE(),INTERVAL 1 DAY),CURDATE()-1, DATE_SUB(CURDATE(),INTERVAL 5 DAY), CURDATE()-5;  | 

DATE_ADD()和DATE_SUB()函数常用type参数有:
1  | MICROSECOND 微秒  |