1

このデータを含む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

から 1 時間の差があるすべての行を取得したい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
4

2 に答える 2

3

これを試して:

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

SQLFiddle デモ

于 2012-08-07T07:40:25.557 に答える
1

MySQL には、特定の時刻から時、分、秒の部分を抽出する関数があります。これを使用して、現在の秒と分をフィールドの秒と分と比較できます。

WHERE SECOND(updated_at) = SECOND(CURTIME()) AND MINUTE(updated_at) = MINUTE(CURTIME())
于 2012-08-07T07:32:47.660 に答える