SQLクエリで、過去24時間のレコードを検索するにはどうすればよいですか?例えば
SELECT * FROM news WHERE date < 24 hours
私は通常、変数にdate()-1日を設定してそれを比較しますが、SQLクエリの方が速いかどうか疑問に思いましたか?
現在の時刻から1日を引いた日付よりも高い日付を選択するだけです。
SELECT * FROM news WHERE date >= now() - INTERVAL 1 DAY;
SELECT * FROM news WHERE date > DATE_SUB(NOW(), INTERVAL 24 HOUR)
SELECT * from new WHERE date < DATE_ADD(now(),interval -1 day);
過去24時間のレコードを取得するには:
SELECT * from [table_name] WHERE date > (NOW() - INTERVAL 24 HOUR)
SELECT * FROM news WHERE date > DATEADD(d,-1,GETDATE())
これを行うには非常に多くの方法があります。リストされているものはうまく機能しますが、日時フィールドがある場合は別の方法があります:
_SELECT [fields]
FROM [table]
WHERE timediff(now(), my_datetime_field) < '24:00:00'
_
timediff()
はtimeオブジェクトを返すので、それを86400(1日の秒数)と比較するのを間違えないでください。そうしないと、出力があらゆる種類の間違ったものになります。