1

mySQL データベースにデータを保存していて、今から現在の時間の開始までの間に挿入された行を取得したいと考えています。時間の開始から最後の 1 時間ではありません。たとえば、9:16 には、9:00 から現在までの行が必要です。私の時間はデータタイム形式で保存されます。これどうやってするの?

4

3 に答える 3

10

以下のクエリは、現在の時間と現在の時刻の間にあるすべての行を選択します。したがって、現在の時刻が10:11の場合、現在の日付の10:00から10:11までのすべての行が選択されます。

SELECT * 
FROM Test
WHERE mytime BETWEEN DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00') 
             AND DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')

私はそれをテストして動作しました。

于 2013-01-24T15:00:38.737 に答える
6

最初に頭に浮かぶのは次のことです。

select *
from t
where date(now() ) = date(t.timeval) and
      hour(now() ) = hour(t.timeval)

データに将来のレコードがないと仮定しました。もしそうなら、これが思い浮かびます:

select *
from t
where date(now() ) = date(t.timeval) and
      hour(now() ) = hour(t.timeval) and
      timeval < now()
于 2013-01-24T14:56:33.357 に答える
2
SELECT * FROM times WHERE t >= DATE_FORMAT(NOW(),'%Y-%m-%d %H:00:00');
于 2013-01-24T15:04:01.143 に答える