关于日期sql(查询本周数据)
提示:只提供其中一部分思路,答案不唯一,也许有更好的思路
@[TOC](目录)
查询本周数据
需要用到YEARWEEK()函数
YEARWEEK(date), YEARWEEK(date,mode)
YEARWEEK()含义:
填入日期,返回是哪一年的第几个月
参数值如下:
参数 | 描述 |
---|---|
date | 需要。从中提取年和周数的日期或日期时间值 |
firstdayofweek | 可选的。指定星期几。 |
firstdayofweek参数定义如下:
参数 | 描述 |
---|---|
0 | 星期的第一天是星期日(如果不输入默认就是这个) |
1 | 一周的第一天是星期一,第一周超过3天(国内项目一般就选这个) |
2 | 星期的第一天是星期日 |
3 | 一周的第一天是星期一,第一周超过3天 |
4 | 一周的第一天是星期日,第一周超过3天 |
5 | 一周的第一天是星期一 |
6 | 一周的第一天是星期日,并且第一周超过3天 |
7 | 一周的第一天是星期一 |
举例:
select YEARWEEK(‘2021-3-15’); 这个是周日
select YEARWEEK(‘2021-3-14’); 这个是周一
输出结果均为
202111
如果是这样
select YEARWEEK(‘2021-3-15’,1); 这个是周日
202111
select YEARWEEK(‘2021-3-14’,1); 这个是周一
202110
所以该需求原理即为
判断当前日期和表中日期周数是否相同
SELECT * FROM 表名 WHERE YEARWEEK(时间字段名,1) = YEARWEEK(now(),1);