2013-07-12 225 views
1

我有一個日期字段表(2013-07-11 = 2013年7月11日)。選擇日期這個星期一和這個星期五之間的日期

我需要從任何給定周的星期一(我的一週的開始)選擇條目,直到那一週結束。

我見過可以抓取日期爲1周前的行的查詢,但我特別需要抓取本週發生的date字段的行,而不管當週的當天是什麼。

我使用這個現在抓住它在PHP,但我覺得必須有計算這一週的開始和結束一個MySQL方法:

$this_monday = date('Y-m-d', strtotime('previous monday')); 
$this_friday = date('Y-m-d',strtotime('this friday')); 

$sql = "SELECT `date`, $sign FROM `horoscopes` 
    WHERE `date` >= '$this_monday' AND `date` <= '$this_friday' 
    AND type = 'Daily' 
    ORDER BY `date` ASC 
"; 

而且我敢肯定,在星期一它最終會抓住上週的星期一,而不是星期一。

從這個數據集,我想選擇以下:

+------------+ 
| date  | 
+------------+ 
| 2013-07-12 | 
| 2013-07-11 | 
| 2013-07-10 | 
| 2013-07-09 | 
| 2013-07-17 | 
| 2013-07-08 | 
| 2013-07-05 | 
+------------+ 

7-8,7-9,7-10,7-11,7-12不管星期幾的。

+2

你爲什麼不使用一週()函數? – Roger

+1

因爲直到現在我才知道它。我會用答案更新我的問題,而不是僅僅刪除它,以防它對別人有用。謝謝。 – Squadrons

+4

不要更新問題,在下面寫下你自己的答案(並接受)。然後這個問題沒有顯示出沒有答案。 – Roger

回答

5

只是瞭解了WEEK() function in mysql

SELECT `date` FROM horoscopes WHERE WEEK(`date`) = WEEK(NOW(), -1); 
+1

你也許應該檢查一年的比賽。 – Kickstart

+2

@Kickstart通常我會同意你的觀點,但畢竟他們只是星座:-) – 2013-07-12 21:06:55

+0

絕對會給這些添加一年。 – Squadrons

相關問題