1
我遇到的問題是運行此查詢時,它會從當前日期(從當前日期減去7天)開始周間隔。我想在之前的10周內完成(星期一至星期一)。因此,如果我現在的日期是在星期一,星期二或星期三,我希望它在最近的星期日開始,然後回顧前10周。我相信我必須使用在DATE_SUB
WEEKDAY
或DAYOFWEEK
但無濟於事曾嘗試:MySql SELECT WHERE日期大於過去10周(從上週日開始)
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
+1我發現計算「本週的星期天」爲'SUBDATE(CURDATE(),DAYOFWEEK(CURDATE()) - 1)'比字符串操作FWIW更容易閱讀。但是,執行不應有任何區別,因爲兩者都是不變的。 – pilcrow
@pilcrow有道理,更新的答案包括你的方法:)... – DarkAjax