2

私はプログラマーではなく、ただの学習者です。私は何かをテストしています。id 、 date 、 status の 3 つの列を持つ test1 という名前のテーブルがあります。

10 日前の ID のステータスを、合格または不合格またはなしのステータスに変更したいと考えています。

4

2 に答える 2

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フィドルです。

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

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

これは、その例のSQLフィドルです。

于 2012-05-09T18:49:04.707 に答える
0

あなたの要件はあいまいです。

これは合格記録を調べて、日付が 10 日を超えている場合に失敗するように設定するだけです。

update test1
set status = 'fail'
where status = 'pass'
and date < dateadd(d,-10, getdate())
于 2012-05-09T18:01:22.100 に答える