2016-09-21 58 views

回答

0

這是一種方法。首先,我們需要從當前日期上週獲得週一,所以我們可以使用下面的技術

下面總是會給週一當週

mysql> select date_sub(curdate(), interval weekday(curdate()) day) as d ; 
+------------+ 
| d   | 
+------------+ 
| 2016-09-19 | 
+------------+ 

現在的得到的最後一週的星期一我們可以通過調整上面

mysql> select date_sub(date_sub(curdate(), interval weekday(curdate()) day), interval 7 day) as d ; 
+------------+ 
| d   | 
+------------+ 
| 2016-09-12 | 
+------------+ 

最後找回我們可以做

select * from your_table 
where 
date_column >= date_sub(date_sub(curdate(), interval weekday(curdate()) day), interval 7 day) 
數據

http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_weekday

最好是處理日期計算,即應用程序級別的上週星期一,然後將值傳遞給查詢。

+0

thnaks,好TECHNIC – Donjwan

+0

對不起,我是在這個例子中失去了你可以讓它更乾淨。 你可以給我查詢嗎? – Donjwan

+0

我使用最後一個例子,我得到了上週和本週的總記錄數..我只需要從上週選擇 – Donjwan

0

DAYOFWEEK()

沒有看到你的表structe,這個啓動和調整您的需求

SELECT * FROM table 
WHERE date >= curdate() - INTERVAL DAYOFWEEK(curdate())+ 7 DAY 
+0

感謝,但這個讓我從9月10日的記錄直到今天,我需要選擇只有12-18之間九月 – Donjwan

0

YEARWEEK操作員需要一個模式選項,讓您在星期一開始一週。 然後,只需查詢的YEARWEEK NOW()減去1個

SELECT * FROM table 
WHERE YEARWEEK(timestamp,1)=YEARWEEK(NOW(),1)-1