繁体   English   中英

如何选择上个月的第一周

[英]How do I SELECT the first week of a previous month

如何选择我尝试过的上个月的第一周

$myQuery = "SELECT repairId , startDate,catId,statusId FROM repair 
  WHERE supermarketId = '$supermarket' 
  AND startDate>=(CURDATE()- 1 WEEK - INTERVAL 2 week)";

这用于尝试选择第三周,但这不起作用

这对你有用吗:

$myQuery = "SELECT repairId , startDate,catId,statusId FROM repair 
  WHERE supermarketId = '$supermarket' 
  AND startDate>= curdate() - interval 1 month
   - interval weekday(curdate() - interval 1 month) day 
   - interval (day(curdate() - interval 1 month 
   - interval weekday(curdate() - interval 1 month) day) div 7) week 
  AND startDate < curdate() - interval 1 month
   - interval weekday(curdate() - interval 1 month) day 
   - interval (day(curdate() - interval 1 month 
   - interval weekday(curdate() - interval 1 month) day) div 7) week _+ interval 1 week";

?

这里的想法是我们首先返回一个月,然后找到一周的开始(假设星期一,对于星期天,我们需要一些额外的调整),然后计算从月初到现在整整几周,并从到目前为止的日期中减去那个星期。 这让我们回到本月第一周的开始。 对于范围的结束,我们只在开始时增加一周。

啊,你的问题变得更详细了。

对 sql 不是很熟悉,可能有更好的,但类似于:

SELECT repairId , startDate,catId, statusId FROM repair
WHERE EXTRACT(YEAR_MONTH FROM start_date) = EXTRACT(YEAR_MONTH FROM NOW()) - 1 AND CAST(EXTRACT(DAY FROM start_date) / 7 + 1 as INT) = ?;

基本上,提取年月分量来比较年和月,然后提取月中的某一天,使用整数截断引起的下限将周与您要查找的任何周进行比较

mysql返回匹配年月的行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM