2016-05-16 38 views
0

我在Debian使用MYSQL 5.5.47,我有我的查詢該位:DATEDIFF()不能忽略時間

AND DATEDIFF(CURRENT_DATE(), shouts_stores.date) <= 7

- 從AND DATEDIFF(NOW(), shouts_stores.date) <= 7

的問題改變了呢? 根據我讀過的所有內容,Datediff應該是忽略時間部分

我必須得到最近7天的行,但我需要帶有時間元素的時間戳,用於PHP中的「發佈X秒/分鐘/小時/天前」功能。

但是,當涉及到獲取行時,我只需要從最多(包括)7天(或1周)前的帖子。但是,如果發佈時間比現在更早,則會將其最多敲擊8天。這造成一些混淆。有沒有人對此有任何想法?

編輯:例如 這就是表如下所示:

enter image description here

TL博士;我需要DATEDIFF()來忽略datetime的時間部分。

+1

你可以添加一個例子嗎? – Alex

+0

是的,一個具體的例子會有所幫助。文檔很清楚,只考慮了日期部分,所以看看問題出在哪裏會很有趣 –

+1

@Pekka웃我不完全確定問題出在哪裏。我已經使用了兩個答案,並都工作。然後我回到自己的代碼,這也起作用。似乎這個問題是一個小故障(?)。這肯定會解釋爲什麼我在其他地方找不到它。不過,我在plesk-update之後還有其他一些問題。這可能是原因。 – NoobishPro

回答

1

嘗試:

... DATEDIFF(CURRENT_DATE(), DATE(shouts_stores.date)) <= 7 
+0

這仍然需要考慮時間 – NoobishPro

+0

嘗試SELECT CURRENT_DATE(),DATE(shouts_stores.date)FROM yourtable;看看它會打印什麼。 – smozgur

+0

我的不好,它的工作。我沒有超越邊緣,而是看着我的PHP代碼如何處理它。兩個答案解決了它,但你的第一個,所以我會選擇你:) – NoobishPro

1

試試這個:

DATE_ADD(shouts_stores.date,INTERVAL 7 DAY) >= CURRENT_DATE() 

更換CURRENT_DATE()與NOW()根據需要

+1

忽略我以前的評論,我調試錯誤。 - 此解決方案有效。 Upvote,因爲你不是第一個回答。謝謝! – NoobishPro