2012-09-19 101 views
0

我想要上週的所有數據。 我用從上週獲取數據

SELECT id FROM tbl 
WHERE date >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY 
AND date < curdate() - INTERVAL DAYOFWEEK(curdate())-1 DAY 

但它的時候,我一週「星期一」開始不工作。

我該怎麼辦?

+0

問題是你正在使用當前日期,而不是「星期一」或任何你開始點。所以在星期四它將在6天前和昨天之間運行.. – BugFinder

+0

我想,如果我從任何日期開始,它應該始終顯示上週從星期一開始到星期日。 – Moumita

+0

很明顯,你沒有考慮到今天不是星期一。 – BugFinder

回答

0

然後改變這樣

$lastweek = unix_to_human(time("Y-m-d H:i:s") - (7 * 24 * 60 * 60), TRUE, 'us'); 
SELECT id FROM tbl 
WHERE date >= curdate() - $lastweek 
AND date < curdate() - $lastweek 
+0

如果我使用+5它只適用於當前日期是星期日,但是當我更改日期它不起作用。 – Moumita

+0

考慮編輯.. – Gautam3164

+0

我的項目在cakephp這裏unix_to_human返回一個錯誤:致命錯誤:調用未定義的方法AdminStatisticController :: unix_to_human() – Moumita

0

嘗試

SELECT id FROM tbl 
WHERE YEARweek(date) = YEARweek(curdate()) 
0
SELECT id FROM tbl WHERE date >= CURDATE() - INTERVAL (WEEKDAY(CURDATE())+7) DAY AND date < CURDATE() - INTERVAL (WEEKDAY(CURDATE())) DAY 

我嘗試這樣做,它爲我工作。