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 微秒 |