2016-04-11 82 views
1

美好的一天,我正在開發一個小腳本,它必須檢查從MySQL數據庫中輸入的數據是否至少大於10天。 表中有一個時間戳字段(這是我想使用的字段,但如果需要,我可以更改它)。 其實我使用這個SQL字符串:MySQL選擇所有超過10天的條目

SELECT * 
FROM entries 
WHERE tag='$tag' 
    AND DATE(last_update) > DATE_SUB(CURDATE(), INTERVAL 10 DAY) 

,但我發現了10多天,所以也許我錯把一些東西入選作品「年輕化」。 這是正確的方式還是更好地通過PHP(而不是MySQL查詢)檢查它?

在此先感謝。

+0

你可以發表一個例子嗎?像'CURDATE()= X'和'DATE(last_update)= Y'什麼是一個返回錯誤Y的例子? – apokryfos

+0

我無法知道這一點,因爲last_update字段每次都會得到「更新」,我得到的錯誤行爲的唯一線索是我有一個每次遞增的「後期計數」字段,並且我發現了一些這樣的字符反對增加太多 –

+1

在數據庫外殼中測試您的查詢通常很有幫助。它通常不會改變數據。 – apokryfos

回答

7

older than 10 days應該是before的計算日期。

SELECT * FROM entries 
WHERE tag='$tag' AND DATE(last_update) < DATE_SUB(CURDATE(), INTERVAL 10 DAY) 
+0

ehm ...你說得對...我想我搞砸了一些東西。 –