私はプログラマーではなく、ただの学習者です。私は何かをテストしています。id 、 date 、 status の 3 つの列を持つ test1 という名前のテーブルがあります。
10 日前の ID のステータスを、合格または不合格またはなしのステータスに変更したいと考えています。
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フィドルです。
SQL Server では、クエリは次のようになります。
UPDATE test1
SET status = 'good'
where date < DateAdd(day, -10, getdate())
AND status IN ('pass', 'fail', 'none');
これは、その例のSQLフィドルです。
あなたの要件はあいまいです。
これは合格記録を調べて、日付が 10 日を超えている場合に失敗するように設定するだけです。
update test1
set status = 'fail'
where status = 'pass'
and date < dateadd(d,-10, getdate())