我尝试了多种方式,所有这些方法导致返回的行不正确,到目前为止我已经尝试了
SELECT * FROM table WHERE id=1 AND timestamp >= NOW() - INTERVAL 1 HOUR ORDER BY timestamp DESC LIMIT 1
.... AND timestamp > DATE_SUB(NOW(), INTERVAL 1 HOUR) ORDER BY timestamp DESC LIMIT 1
两者都返回了一个结果 - 正如预期的那样,但不是该ID的最新结果。
我怎么能让这个工作?
示例:
index|id|timestamp
----------------------------
1 |1 |2015-06-22 15:08:44
2 |1 |2015-06-21 12:09:16
3 |2 |2015-06-22 15:12:32
4 |1 |2015-06-22 12:33:49
5 |3 |2015-06-20 00:00:00
如果要求ID 1,2015-06-22 15:12:32请求ID 2,并且如果要求ID 3则不返回任何行,将返回时间2015-06-22 15:08:44
假设当前日期时间为2015-06-22 15:mm:ss
答案 0 :(得分:1)
select * from table
where TIMESTAMPDIFF(HOUR, `timestamp`, NOW())=0
ORDER BY `timestamp` DESC
LIMIT 1