mysql获取本周一周日,上周一上周日日期及用到的NOW(),CURDATE(),KEEKDAY(date),DATE_SUB()函数

本文总结了MySQL中用于获取当前日期、星期索引以及进行日期运算的NOW()、CURDATE()、WEEKDAY()和DATE_SUB()函数,详细解释了如何利用这些函数来获取本周一、周日以及上周一、周日的日期,适用于定时抽取数据的需求。

需要定时抽取上周一至周日的数据,查找相关资料后总结四个函数如下,方便以后查用,欢迎指正

 1.NOW()函数返回当前日期和时间,

SELECT NOW();

out 2021-10-27 17:23:22	   ---当前日期

2.CURDATE()函数只返回当前日期,以“YYYY-MM-DD”格式,

SELECT CURDATE();

out  2021-10-27  ---当前日期

3.WEEKDAY(date) 函数返回date星期的索引,0 代表周一,1 代表周二,2 代表周三...6代表周日

SELECT WEEKDAY(CURDATE())
out   2   ---此时为周三

4.DATE_SUB函数为从 start_date 起始值中减去时间间隔值,语法:

DATE_SUB(start_date,INTERVAL expr unit);

其中参数:start_date是起始值,expr是一个字符串,用于确定从起始日期减去的间隔值,unitexpr可解析的间隔单位,例如MONTH、DAYHOUR等,如果unit值为负,则和DATE_ADD()函数类似,

示例:现在的日期减去1天

SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY);

out 2021-10-26

且此函数可以自动调整日期格式,如下例为03-01 减去1HOUR后,得到2月最后一天日期,并以带时间的形式展示了出来,MONTH为单位时同样适合

SELECT DATE_SUB('2021-03-01',INTERVAL 1 hour);

out 2021-02-28 23:00:00

综上,获取本周周一思路:

先获取当前日期 使用CURDATE()函数,

然后获取当前日期为周几 使用 WEEKDAY(CURDATE()) 函数,返回的值为 2 ,

最后用现在的日期减去这个值,即为周一日期

SELECT CURDATE();

out 2021-10-27

SELECT WEEKDAY(CURDATE());

out 2

SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY);

out 2021-10-25  ---本周一

获取周日思路:

获取现在为周几(取索引值),然后减去6(索引减6,相当于周几减去7天),得到还差几天到周日的负数(大概这个意思),然后调用DATE_SUB函数即可,

用DATE_SUB感觉有点绕,调用DATE_ADD函数加上这个差值容易理解

SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 6 DAY);

out 2021-10-31

SELECT DATE_ADD(CURDATE(),INTERVAL 6- WEEKDAY(CURDATE()) DAY);

out 2021-10-31

获取上周日,上周一思路:

已经获取到了本周一的日期,再多减一天就能得到上周日数据,获取上周一即多减7天(相对本周一),最后如下

SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 0 DAY),DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 6 DAY);

out 2021-10-25	2021-10-31   ---本周一 周日

SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 7 DAY),DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 1 DAY);

out 2021-10-18	2021-10-24  ---上周一 上周日
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值