[英]MySQL Select where column greater than or equal to closest past date from given date
[英]MySql SELECT WHERE Date is greater than past 10 weeks (starting at prev Sunday)
我遇到的問題是,當運行此查詢時,它會從當前日期(從當前日期起減去7天)開始一周的間隔。 我想做所有前10周(周一至周日)。 因此,如果我的當前日期是星期一,星期二或星期三,我希望它在最近的星期日開始,然后回顧前10周。 我相信我必須在DATE_SUB
使用WEEKDAY
或DAYOFWEEK
,但嘗試無濟於事:
SELECT
SUM(MT.QUANTITY) as qty,
WEEKDAY(MT.TRANS_DATE) AS WEEKDAY,
WEEK(MT.TRANS_DATE) AS WEEK,
YEAR(MT.TRANS_DATE) AS YEAR
FROM
mytable MT
WHERE
MT.TRANS_DATE > DATE_SUB(CURDATE(), INTERVAL 10 WEEK)
GROUP BY WEEK
嘗試使用DATE_SUB(STR_TO_DATE(CONCAT(YEAR(CURDATE()),WEEK(CURDATE()),' Sunday'), '%X%V %W'),INTERVAL 10 WEEK)
,如下所示:
SELECT
SUM(MT.QUANTITY) as qty,
WEEKDAY(MT.TRANS_DATE) AS WEEKDAY,
WEEK(MT.TRANS_DATE) AS WEEK,
YEAR(MT.TRANS_DATE) AS YEAR
FROM
mytable MT
WHERE
MT.TRANS_DATE > DATE_SUB(STR_TO_DATE(CONCAT(YEAR(CURDATE()),WEEK(CURDATE()),' Sunday'), '%X%V %W'),INTERVAL 10 WEEK)
GROUP BY WEEK
您還可以使用pilcrow建議的另一種方式:
SUBDATE(CURDATE(), DAYOFWEEK(CURDATE()) - 1)
哪個更具可讀性......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.