2012-05-09 12 views
2

私はプログラマーではなく、単なる学習者です。私は何かを試しています。 私は3つのカラムid、date、statusを持つテーブル、つまりtest1を持っています。このSQLクエリを書くには?

私は10日齢あるとパスとしてのステータスを持っているか、良いに失敗していないか、どれも IDのステータスを変更したいです。

答えて

0

要件が不明です。

これはパスレコードを調べ、日付が10日以上経過すると失敗するように設定します。

update test1 
set status = 'fail' 
where status = 'pass' 
and date < dateadd(d,-10, getdate()) 
2

RDBMSを指定していないので、私はMySQLとSQL Serverの回答を提供します。あなたの要求に関する多くの詳細を提供しなかったが、あなたは、MySQLで、次の操作を行うことができます。ここでは

UPDATE test1 
SET status = 'good' 
where date < DATE_ADD(now(), interval -10 day) 
    AND status IN ('pass', 'fail', 'none'); 

は、実施例とsql fiddleです。

は、SQL Serverでは、クエリは次のようになります。

ここ
UPDATE test1 
SET status = 'good' 
where date < DateAdd(day, -10, getdate()) 
    AND status IN ('pass', 'fail', 'none'); 

はその一例でsql fiddleです。

+0

日付と時刻の両方を格納しています。構造体には、その関数が使用されるdatetimeがありますか? –

+0

datetimeを同じフィールドに格納する場合、同じ関数が使用されます。 – Taryn

関連する問題