簡體   English   中英

MySql SELECT WHERE日期大於過去10周(從上周日開始)

[英]MySql SELECT WHERE Date is greater than past 10 weeks (starting at prev Sunday)

我遇到的問題是,當運行此查詢時,它會從當前日期(從當前日期起減去7天)開始一周的間隔。 我想做所有前10周(周一至周日)。 因此,如果我的當前日期是星期一,星期二或星期三,我希望它在最近的星期日開始,然后回顧前10周。 我相信我必須在DATE_SUB使用WEEKDAYDAYOFWEEK ,但嘗試無濟於事:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM