mysql YEARWEEK(date[,mode]) 函数 查询上周数据 以及本周数据

通常使用下边sql即可(如果数据库设置了周一为一周起始的话):

  1.  查询上周数据(addtime为datetime格式)
  2.  SELECT id,addtime FROM mall_order WHERE YEARWEEK(date_format(addtime,'%Y-%m-%d')) = YEARWEEK(now())-1;

YEARWEEK(date[,mode]) 函数默认西方周日当做一周的起始,需要改成国人的使用习惯,用周一作为一周起始,这里设置YEARWEEK的第二个参数mode为1即可。

由于每个数据库的配置不一样,所以最好还是先执行下边的sql语句人工审查一下数据结果的第一条和最后一条数据的时间是否是上周的周一和周末,再考虑是否给mode赋值

-- 查询上周数据(addtime为时间戳)
SELECT id,addtime FROM mall_order WHERE YEARWEEK(FROM_UNIXTIME(addtime,'%Y-%m-%d'),1) = YEARWEEK(now(),1)-1;
-- 查询上周数据(addtime为datetime格式)
SELECT id,addtime FROM mall_order WHERE YEARWEEK(date_format(addtime,'%Y-%m-%d'),1) = YEARWEEK(now(),1)-1;

根据国人习惯 周一为一周的第一天习惯算一周的数据

SELECT * FROM t_browse_statistics WHERE YEARWEEK(date_format(brows_date,'%Y-%m-%d'),1) = YEARWEEK(now())+1
ORDER BY brows_date DESC

原文地址:https://www.cnblogs.com/austinspark-jessylu/p/9987945.html