2011-11-10 19 views
50

私のSQLクエリでは、過去24時間のレコードをどのように見つけ出すのですか? 例:過去24時間の日付フィールドを持つレコードを検索する

SELECT * FROM news WHERE date < 24 hours 

私は通常)(日付に変数を設定することによって、それを行う - 1日及びそれと比較することが、私は、SQLクエリ方法が速かったかどうかだろうか?

+2

? –

+0

MySQL。更新された:D – user1022585

答えて

-3
SELECT * FROM news WHERE date < DATEADD(Day, -1, date) 
+0

あなたは '>' NOT '<'が必要です –

2
SELECT * FROM news WHERE date > DATEADD(d,-1,GETDATE()) 
+1

SQL ServerではなくMySQLを使用していると思います。それでも、答えは他の誰かを助けるかもしれません:) – Simon

+0

ええ、その助けを私は仲間:) –

52
SELECT * FROM news WHERE date > DATE_SUB(NOW(), INTERVAL 24 HOUR) 
+0

これを行うことは可能ですか?WhereDate> Now()-1? –

+2

@Andrew:24時間ではなく、24時間だと思う。 –

+0

@Ypercube - yup、修正済みです。 – Andrew

92

あなたは、単に現在の時刻マイナス1日より高い日付を選択します。

SELECT * FROM news WHERE date >= now() - INTERVAL 1 DAY; 
0

これを行う方法はたくさんあります。記載されているものは素晴らしい仕事が、あなたは日時フィールドがあれば、ここでもう一つの方法です:

SELECT [fields] 
FROM [table] 
WHERE timediff(now(), my_datetime_field) < '24:00:00' 

timediff()は、時間オブジェクトを返しますが、その86400と比較することでミスをしないでください(1日の秒数) 、またはあなたの出力はすべての種類の間違ったものになります。

+1

1

チェック:使用しているデータベース

SELECT * from [table_name] WHERE date > (NOW() - INTERVAL 24 HOUR). 
4
SELECT * from new WHERE date < DATE_ADD(now(),interval -1 day); 
関連する問題