[英]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) = ?;
基本上,提取年月分量来比较年和月,然后提取月中的某一天,使用整数截断引起的下限将周与您要查找的任何周进行比较
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.