[英]MySQL query to select records newer than x days
很抱歉,這聽起來像是一個非常基本的問題,但是由於某種原因,今天我真的很難解決這個問題。 我有一個數據庫表,其日期格式為2014-09-30 20:39:17
並且有一個date_added
列,並且我有一個帶有用戶過濾選項的網頁。 基本上,我想使用變量來選擇不同的日期范圍,例如:
SELECT * FROM table WHERE date_added = /* EVERYTHING POSTED TODAY */
SELECT * FROM table WHERE date_added = /* EVERYTHING POSTED WITHIN LAST 7 DAYS */
SELECT * FROM table WHERE date_added = /* EVERYTHING POSTED WITHIN LAST 30 DAYS */
我需要輸入什么才能使這些變量起作用?
您可以使用CURDATE()
和非常簡單的INTERVAL
算法。
在以下示例中,假設查詢是在2014-10-21 22:25:28
執行的:
SELECT * FROM table WHERE date_added >= CURDATE()
-- >= 2014-10-21 00:00:00
SELECT * FROM table WHERE date_added >= NOW() - INTERVAL 24 HOUR
-- >= 2014-10-20 22:25:28
SELECT * FROM table WHERE date_added >= CURDATE() - INTERVAL 7 DAY
-- >= 2014-10-14
SELECT * FROM table WHERE date_added >= CURDATE() - INTERVAL 30 DAY
-- >= 2014-09-21
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.