如何选择上一个月的第一周我尝试过
$myQuery = "SELECT repairId , startDate,catId,statusId FROM repair
WHERE supermarketId = '$supermarket'
AND startDate>=(CURDATE()- 1 WEEK - INTERVAL 2 week)";
这用于尝试选择第三周,但这不起作用
答案 0 :(得分:0)
这适合你吗?
$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";
这里的想法是我们先回去一个月,然后找到一周的开始(假设星期一,星期日我们需要一些额外的调整),然后弄清楚从一开始就有多少整周。这个月,从目前为止的几个星期减去。这将我们带回到本月第一周的开始。对于范围的结束,我们只需在开始时添加一周。
答案 1 :(得分:0)
啊,你的问题变得更加详细。
对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) = ?;
基本上,提取年份月份组件以比较年份和月份,然后提取月份使用由整数截断引起的地板的日期,以获得与您正在寻找的任何一周进行比较的一周