2012-05-14 18 views
0

を選択した最後の私は「lastRanAt」日時がCURRENTTIMEマイナスrefreshTime(refreshTimeがある未満の結果を返したいと思い、このSQL行選択

id | refreshTime | lastRanAt    | otherFeilds 
1 | 60   | 2012-05-14 14:25:08 | somthing 
2 | 30   | 2012-05-14 15:25:08 | something else 
3 | 20   | 2012-05-03 16:25:08 | foo 

のように見えるテーブルを持っています

これは1つのクエリで実行できますか?事前に

おかげ

+4

使用しているDBの種類(SQL-ServerやOracleのは、MySQL、...)? –

+0

ああ、申し訳ありませんが、それは違いがあることを私がいつも忘れているSQLサーバです。 –

+0

sql-serverのどのバージョンですか? – Arion

答えて

2

このような何か?

select * 
from Table t 
where lastRanAt < dateadd(mi, (t.refreshTime * -1), getdate()) 

SQL Fiddle

+0

素晴らしい、ありがとう –

0

EDIT:

select * 
from your_table 
where lastRanAt < dateadd(mi, refreshTime * -1 , getdate()) 
+0

refreshTimeの設定についてはどうすればよいですか?すべての行で異なるのは –

+0

です。プロシージャにコードを追加し、リフレッシュ時間をパラメータとして渡すことができます – Diego

+0

refreshTimeフィールドの値を渡すだけではるかに簡単ではるかに高速です。それ以外の場合は、カーソルを作成して各行のフィールド値を取得してから文を実行する必要があります。 –