日付に応じて特定のコードを設定できるようになっています。SQL Server:CASE date終了日の30日前
今日の日付がstartdateとenddateの間にある場合、1つは「アクティブ」です。もう1つは、終了日の30日前に適用されます。
私はこれを試したことがありますが、30日前に動作するようにキャストすることはできません。 助けていただければ幸いです。
例:
DECLARE @now datetime = GETDATE()
UPDATE table
SET CODE = CASE
WHEN @now BETWEEN i.StartDATE AND i.EndDATE
THEN 'Active'
WHEN i.EndDATE <= DATEADD(day, -30, GETDATE())
THEN 'Expiring'
ELSE 'Cancelled'
END
どのようなエラーが表示されますか? – dazedandconfused
あなたの状態が間違っていると思います。もし今日が終了日から30日以内であればコードを期限切れにしたいと思うなら 'getdate()> = dateadd(day、-30、i.enddate)'を計算する必要があります ' – Beth
@Beth - そうではありません比較演算子をより小さい値から小さい値へと反転させると、OPの値と同じになります。 – Igor