0

データベースからユーザー情報を選択しようとしていますが、過去 3 時間にログインしたユーザーのみを取得したい

私は次のことを試しました:

SELECT * FROM user  WHERE last > CURTIME(), INTERVAL 3 HOUR ORDER BY last DESC

しかし、それは機能していません。INTERVAL関数を間違った場所に置いたと思います。しかし、私は多くのアプローチを試みましたが、まだ機能していません。

どうすれば修正できますか?CURTIME() 関数を使用するよりも良い方法はありますか?

4

3 に答える 3

3

CURTIME は日付なしの文字列としての時間であるためNOW()、 ではなくを使用する必要があります。CURTIME()したがって、午前 1 時の場合、昨日の午後 11 時にログインした人は含まれません。

SELECT * FROM USER
WHERE last > DATE_SUB(NOW(), INTERVAL 3 HOUR)
ORDER BY last DESC
于 2012-09-01T20:24:39.717 に答える
2
SUBTIME( curtime( ) , '03:00:00' )
于 2013-07-07T14:30:43.123 に答える
0

試す

SELECT * FROM user  WHERE ADDDATE(last, INTERVAL 3 HOUR)>CURTIME() ORDER BY last DESC 
于 2012-09-01T19:59:26.353 に答える