MYSQL查询获取一小时差异的行

时间:2012-08-07 07:28:32

标签: mysql

我有一个包含此数据的mysql表

id       user_id    latitude       longitude       updated_at
1        1          13.21          102.41          2012-08-06 13:24:06 
1        1          13.31          102.52          2012-08-06 13:54:06
1        1          13.51          102.65          2012-08-06 14:24:06
1        1          13.61          102.33          2012-08-06 14:34:06
1        1          13.71          102.57          2012-08-06 15:24:06
1        1          13.81          102.90          2012-08-06 16:24:06

我想检索与last updated time相差一小时的所有行。

即如果我在2012-08-06 16:24:06搜索我想只获得这些行

1        1          13.21          102.41          2012-08-06 13:24:06 
1        1          13.51          102.65          2012-08-06 14:24:06
1        1          13.71          102.57          2012-08-06 15:24:06
1        1          13.81          102.90          2012-08-06 16:24:06

2 个答案:

答案 0 :(得分:3)

试试这个:

SELECT *
FROM table_name
WHERE DATE_FORMAT(updated_at, '%i%s') = DATE_FORMAT(CURRENT_TIMESTAMP, '%i%s');

SQLFiddle Demo

答案 1 :(得分:1)

MySQL具有从给定时间提取小时,分钟和秒部分的功能。您可以使用它来比较当前秒和分钟到字段中的秒和分钟。

WHERE SECOND(updated_at) = SECOND(CURTIME()) AND MINUTE(updated_at) = MINUTE(CURTIME())