我有一个包含此数据的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
答案 0 :(得分:3)
试试这个:
SELECT *
FROM table_name
WHERE DATE_FORMAT(updated_at, '%i%s') = DATE_FORMAT(CURRENT_TIMESTAMP, '%i%s');
答案 1 :(得分:1)
MySQL具有从给定时间提取小时,分钟和秒部分的功能。您可以使用它来比较当前秒和分钟到字段中的秒和分钟。
WHERE SECOND(updated_at) = SECOND(CURTIME()) AND MINUTE(updated_at) = MINUTE(CURTIME())