Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择时间戳来自过去一小时的最新条目_Mysql - Fatal编程技术网

Mysql 选择时间戳来自过去一小时的最新条目

Mysql 选择时间戳来自过去一小时的最新条目,mysql,Mysql,到目前为止,我已经尝试了多种方法,所有这些方法都会导致返回不正确的行 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都返回了一个结果——正如

到目前为止,我已经尝试了多种方法,所有这些方法都会导致返回不正确的行

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都返回了一个结果——正如预期的那样,但不是该ID的最新结果

我怎样才能让它工作呢

例如:

索引| id |时间戳

-------------------------------

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:08:44的行;如果请求ID 2,则返回时间为2015-06-22 15:12:32的行;如果请求ID 3,则不返回任何行

假设当前日期时间为2015-06-22 15:mm:ss

请添加输入和预期输出的示例
'timestamp'
您不应该在查询中对列名使用引号。
'timestamp'
是字符串文字
timestamp
(无引号)将是您的字段。
'timestamp'
timestamp
都返回相同的结果,那就是我只是在玩,我不知道这有什么不同。在过去一小时编写的标题中添加一个示例,但在正在编写的查询中,间隔1天。哪一个1是正确的?我建议你在回答中加上一些解释。只有代码的答案有时足够好,但代码+解释的答案总是更好。@Barranka:只有代码的答案是我之前评论的后续(参考MySQL网站)-所以我认为进一步的解释只是重复工作
select * from table 
where TIMESTAMPDIFF(HOUR, `timestamp`, NOW())=0
ORDER BY `timestamp` DESC
LIMIT 1