我目前使用下面的SQL檢索過去七天值得一表的條目:PHP/MySQL的:檢索最後*全*周條目
purchased >= date_sub(now() ,interval 7 day)
不過,我需要改變這個所以它會檢索最後一週的價值(週六午夜到週六午夜)。所以基本上,整個一週的結果都不會改變,但是當週日早上有人訪問時,他們會刷新。
我只是無法弄清楚如何解決日子等問題。另外,是否有內置的MySQL函數用於執行此操作?
我希望我已經解釋清楚了。 這是一個PHP應用程序。
我目前使用下面的SQL檢索過去七天值得一表的條目:PHP/MySQL的:檢索最後*全*周條目
purchased >= date_sub(now() ,interval 7 day)
不過,我需要改變這個所以它會檢索最後一週的價值(週六午夜到週六午夜)。所以基本上,整個一週的結果都不會改變,但是當週日早上有人訪問時,他們會刷新。
我只是無法弄清楚如何解決日子等問題。另外,是否有內置的MySQL函數用於執行此操作?
我希望我已經解釋清楚了。 這是一個PHP應用程序。
查看MySQL函數YEARWEEK()。
所以你可以做這樣的事情
SELECT * FROM table WHERE YEARWEEK(purchased) = YEARWEEK(NOW());
您可以通過使用第二模式參數更改星期開始的第一天
什麼可能是更好不過是以某種方式計算的最後日期星期天在00:00「,然後數據庫不必爲每行都運行一個函數,但是我看不到在MySQL中這樣做的明顯方式。在PHP中,你可以很容易但是產生這種做類似
$sunday = date(('Y-m-d H:i:s'), strtotime('last sunday 00:00'));
$sql = "SELECT * FROM table WHERE purchased >= '$sunday'";
MySQL有一個WEEK()函數,它允許您從一個日期獲取一年中的數字星期。您可以獲得(今天的星期)-1,並將其與您過濾的記錄周進行比較。
你需要檢查的一年,否則你可能會從同一個星期,但在一年前 – 2008-11-24 12:03:47
好一點,我的失誤得到記錄。 – acrosman 2008-11-24 12:28:07