我通過mysql NOW()函數在字段'date'中記錄數據。我想選擇記錄過去三天(今天,昨天和前一天)的數據,但不知道要這樣做。我嘗試我的代碼如下,請幫助。 ?如何從表中選擇數據只記錄最近三天(使用PHP,MySQL)
SELECT * FROM tlb_students WHERE日期...... ORDER BY日期DESC LIMIT 20
我通過mysql NOW()函數在字段'date'中記錄數據。我想選擇記錄過去三天(今天,昨天和前一天)的數據,但不知道要這樣做。我嘗試我的代碼如下,請幫助。 ?如何從表中選擇數據只記錄最近三天(使用PHP,MySQL)
SELECT * FROM tlb_students WHERE日期...... ORDER BY日期DESC LIMIT 20
SELECT *
FROM tlb_students
WHERE date >= NOW() - INTERVAL 3 DAY
ORDER BY date DESC
LIMIT 20
WHERE date >= (CURDATE() - INTERVAL 3 DAY)
非常感謝sel。 – 2012-07-09 02:58:19
另一種方式來做到這一點是:
SELECT * FROM tlb_students WHERE date < DATE_ADD(CURDATE(),INTERVAL -3 DAY)
WHERE date >= subdate(NOW(), 2)
使用NOW()和CURDATE()Zane有什麼不同?如果我在凌晨使用這些數據,是否有可能在前天之前記錄數據? – 2012-07-09 03:02:48
@AJOP'NOW()'產生格式爲'YYYY-MM-DD HH:MM:SS'的時間戳,而'CURDATE()'產生格式爲'YYYY-MM-DD'的日期,所以與'NOW()',你會在當前時間的3天內獲得帖子,因爲小時/分鐘/秒被考慮在內。這假設你的'date'字段是'DATETIME'或'TIMESTAMP'類型。 – 2012-07-09 03:05:47