2012-11-02 198 views
6

我從表中檢索數據並顯示條目的總數。我想要做的是顯示今天,昨天和本月的日期總數。該表使用unix時間戳格式(例如,1351771856)。mysql日期顯示結果今天/昨天/星期

目前我使用這條線顯示今天的結果:

AND comment_date > UNIX_TIMESTAMP() - 24 * 3600"; 

但是這給了我只是過去24小時中的條目。

:所以我們說上週五,下午17:00 - 它讓我從週四下午17:00計數至週五下午17:00

我想要什麼是得到的結果對於

  • 週四00:00:00 - 23:59:59(在這種情況下,昨天)
  • 結果今天(00:00:00 - 23:59:59)
  • 和最後一週,結果開始o ñ星期一00:00:00直到「今天」(本例中爲星期五)。

我無法在MySQL文檔中找到實現此目的的方法。

+0

「真實」值是什麼意思? –

+0

例如:comment_date = $ today或comment_date = $ yesterday,comment_date = $ this_month –

+0

沒有「today」或「yesterday」變量,您必須使用時間戳或其他日期類型(或mysql日期差異if你使用日期時間)。你的方法是我看到結果的唯一方法。 – Serg

回答

6

這MySQL的代碼應該爲你工作:

// Today 
AND DATE(from_unixtime(comment_date)) = CURRENT_DATE 

// Yesterday 
AND DATE(from_unixtime(comment_date)) = DATE_SUB(CURRENT_DATE,INTERVAL 1 DAY) 

// This week 
AND YEARWEEK(from_unixtime(comment_date), 1) = YEARWEEK(CURRENT_DATE, 1) 

// This month 
AND YEAR(from_unixtime(comment_date)) = YEAR(CURRENT_DATE) 
AND MONTH(from_unixtime(comment_date)) = MONTH(CURRENT_DATE) 
+0

這是完美的工作! –

+0

唯一剩下的就是從星期一開始計算「本週」 –

+0

@JoachimIsaksson,我試了一下,但由於某種原因使用'@now'給了我一個「500內部服務器錯誤」 –

0

只需使用這樣的:

AND comment_date > date_sub(current_date, interval 1 day) 
相關問題