【发布时间】:2012-07-08 11:16:47
【问题描述】:
我通过 mysql NOW() 函数在“日期”字段中记录了数据。我想选择记录过去三天(今天、昨天和前天)的数据,但不知道要这样做。
SELECT * FROM tlb_students WHERE date ...?... ORDER BY date DESC LIMIT 20
【问题讨论】:
我通过 mysql NOW() 函数在“日期”字段中记录了数据。我想选择记录过去三天(今天、昨天和前天)的数据,但不知道要这样做。
SELECT * FROM tlb_students WHERE date ...?... ORDER BY date DESC LIMIT 20
【问题讨论】:
另一种方法是:
SELECT * FROM tlb_students WHERE date < DATE_ADD(CURDATE(),INTERVAL -3 DAY)
【讨论】:
WHERE date >= subdate(NOW(), 2)
【讨论】:
SELECT *
FROM tlb_students
WHERE date >= NOW() - INTERVAL 3 DAY
ORDER BY date DESC
LIMIT 20
【讨论】:
NOW() 生成格式为“YYYY-MM-DD HH:MM:SS”的时间戳,而CURDATE() 生成格式为“YYYY-MM-DD”的日期,因此使用NOW(),您会得到以下帖子在从当前时间开始的 3 天内完成,因为考虑了小时/分钟/秒。这是假设您的 date 字段是 DATETIME 或 TIMESTAMP 类型。
WHERE date >= ( CURDATE() - INTERVAL 3 DAY )
【讨论】: