Mysql 获取当前日期前一天 DATE_SUB()函数的用法


业务需要
在这里插入图片描述

这是关于一个报名活动的需求,因为报名开始时间和活动结束时间有时间间隔的,小程序展示需要,所以就展开下文
获取当前日期:select curdate()
获取当前日期的前两天:select date_sub(curdate(),interval 2 day)
获取当前日期后一天:select date_sub(curdate(),interval -1 day)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
举例:

<!--	flag 0:全部、1:未开始、2:即将开始、3:进行中、 4:已结束 -->
        <!-- 未开始 【报名开始时间:1】 -->
		<if test="flag!=null and flag=='1'.toString()" >
				and a.begin_date >= now()
		</if>
		<!-- 即将开始 【报名开始时间的前两天】 -->
		<if test="flag!=null and flag=='2'.toString()" >
				and  now() >= a.begin_date and  a.begin_date >= DATE_SUB(CURDATE(),INTERVAL 2 DAY)
		</if>
		<!-- 进行中 【报名开始时间到活动结束】 -->
		<if test="flag!=null and flag=='3'.toString()" >
				and now() &lt;= a.activity_end_date and  a.begin_date >= now()
		</if>
		<!-- 已结束 【活动结束】 -->
		<if test="flag!=null and flag=='4'.toString()" >
				and  a.activity_end_date &lt;= now()
		</if>

随便举几个date_sub()的例子。

date_sub(‘2021-08-23’,interval 1 day) 表示 2021-08-22
date_sub(‘2021-08-23’,interval 0 day) 表示 2021-08-23
date_sub(‘2021-08-23’,interval -1 day) 表示 2021-08-24

date_sub(curdate(),interval 1 day) 表示 2021-08-22
date_sub(curdate(),interval -1 day) 表示 2021-08-24
date_sub(curdate(),interval 1 month) 表示 2021-07-23
date_sub(curdate(),interval -1 month) 表示 2021-09-23
date_sub(curdate(),interval 1 year) 表示 2020-08-23
date_sub(curdate(),interval -1 year) 表示 2022-08-23
备注
SELECT NOW(),CURDATE(),CURTIME()

NOW()CURDATE()CURTIME()
2021-08-23 13:37:462021-08-2313:38:48

DATE_ADD()函数

一、用途:

date_add() 函数用来对日期进行加减

函数调用形式:

// @date 欲操作的日期
// INTERVAL 关键字
// expr 日期加减的数值
// unit 日期加减的类型
DATE_ADD(date,INTERVAL expr unit)

简单应用

1.查看当前时间
在这里插入图片描述
将来的48小时 即将售卖
在这里插入图片描述

// 得到当前时间增加1个小时的结果
select date_add(now(),interval 1 hour)
// 得到当前时间增加1天的结果
select date_add(now(),interval 1 day)
// 得到当前时间减少48个小时的结果
select date_add(now(),interval -48 hour)

// 还有一些更加高级的用法,比如增加一天一小时一分一秒
select date_add(now(),interval '1 1:1:1' DAY_SECOND)
//当前时间增加2个小时
select date_add(now(),interval 2 DAY_HOUR)
//当前时间增加10分钟
select date_add(now(),interval 10 DAY_MINUTE)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐