2017-05-10 46 views
-1
 
------------------------- 
| idproduct | date | 
|-------------------------| 
| idp001  | 2017-05-01 | 
| idp003  | 2017-05-05 | 
| idp005  | 2017-05-07 | 
| idp007  | 2017-05-08 | 
| idp010  | 2017-05-09 | 
------------------------- 

我試試這個代碼開始:
SELECT * FROM product where date between date_sub(now(),INTERVAL 1 week) and now()MySQL的:如何獲得數據ID爲1周的週一

它的結果是:

 
------------------------- 
| idproduct | date | 
|-------------------------| 
| idp003  | 2017-05-05 | 
| idp005  | 2017-05-07 | 
| idp007  | 2017-05-08 | 
| idp010  | 2017-05-09 | 
------------------------- 

,但我想造成這樣和第一星期一星期幾

 
------------------------- 
| idproduct | date | 
|-------------------------| 
| idp001  | 2017-05-01 | 
| idp003  | 2017-05-05 | 
| idp005  | 2017-05-07 | 
------------------------- 
+0

存儲一個字符串增加id只是要求麻煩。 – Strawberry

回答

1

您可以使用weekday()

where date >= curdate() - interval 7 + weekday(curdate()) day and 
     date < curdate() - interval weekday(curdate()) day 

weekday()星期一返回0,然後增加以後的日子。此代碼使用curdate(),因爲它明確沒有時間分量。而且,它更喜歡>=<而不是between。使用between時間組件可能會導致意外的結果,所以我只是從不使用它的日期/時間。

+0

謝謝@Gordon Linoff – Jefry