2013-05-10 75 views
0

我想選擇上週內的所有日期。 但不是簡單地計算當前的日期 - 7,因爲我所遇到的所有帖子都建議。 這是我實際上有它現在的SUM ....上週選擇日期,但不止最近7天

SELECT SUM(total) FROM payforms WHERE user_id = 1 GROUP BY WEEK(date) 

這給了我一個很好的總... 但我想在最近一週內檢索所有的個人記錄。 因此,我可以使用BETWEEN查詢....但我怎麼才能讓它看起來在本週。 示例... 星期二我希望它只能從Sun,Mon,Tue找到值。 星期三,我希望它找到太陽,星期一,星期二,星期三。 星期六它發現整個前一週。 etc

所以要更清楚.... 我不希望它找到上週一,在星期一。 星期一它應該只顯示星期一,如果你明白我的意思。

我可以這樣做嗎??

感謝

回答

1
select * from payforms where yearweek(date) = yearweek(now()); 

雖然我認爲MySQL的周在週日開始

+0

它從星期一開始,從[平日](https://dev.mysql.com/doc/refman/5.5/en/date -and-time-functions.html#function_weekday)函數'返回日期的星期幾索引(0 =星期一,1 =星期二,... 6 =星期日).' – 2013-05-10 21:41:47

0

您可以使用WEEKDAY日期函數,它返回一週中的一天指數。

0

如果我正確理解你的問題,你可以使用此查詢:

SELECT date, SUM(total) 
FROM  payforms 
WHERE date >= CURDATE() - INTERVAL DAYOFWEEK(CURDATE())-1 DAY 
GROUP BY date 

請參閱小提琴here。 這將從上週日開始累計本週每天的所有總計。如果你想讓它開始於上週一你可以使用這個:

WHERE date >= CURDATE() - INTERVAL WEEKDAY(CURDATE()) DAY