MySQL指定日期加减

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;
明显发现使用 CURDATE()函数直接进行加减存在问题,需要留意。当我们需要日期加减操作时,可使用 DATE_SUB() 和 DATE_ADD() 函数。

DATE_ADD()和DATE_SUB()函数常用type参数有:

1
2
3
4
5
6
7
8
9
MICROSECOND 微秒 
SECOND 秒
MINUTE 分钟
HOUR 小时
DAY 天
WEEK 周
MONTH 月
QUARTER 季度
YEAR 年

本文标题:MySQL指定日期加减

文章作者:xugz

发布时间:2019年12月02日 - 10:16

最后更新:2021年09月11日 - 16:21

原始链接:https://xlline.github.io/2019/12/02/MySQL-time-addsub/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。