我通过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