- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数日経過した後にNULLに変換する処理は???)
SQLで数日経過したデータをNULLに変換する処理とは?
このQ&Aのポイント
- SQLでテーブルのある項目に入っている日付がSYSDATEから数日経過した場合、NULLに変換する処理をしたいです。具体的には、SYSDATEから7日以上経過したデータをNULLにしたいと考えています。また、処理の中で土曜日と日曜日を考慮する必要もあります。
- このような処理は単純なSQL文だけでは実現できません。土曜日だった場合には9日経過するまでデータをNULLにせず、日曜日だった場合には8日経過するまでデータをNULLにしないような処理を追加する必要があります。
- また、企業の休み(お盆、正月、祝日など)を考慮する場合には、休みのデータを持ったテーブルを作成する方が効率的です。ただし、SQL単文でも休みを考慮することは可能ですが、処理が煩雑になる可能性があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
UPDATE テーブル SET 日付 = NULL WHERE 日付 = TRUNC(SYSDATE) - CASE TO_C HAR(日付, 'DAY') WHEN '土曜日' THEN 9 WHEN '日曜日' THEN 8 ELSE 7 END かな? > あと余談ですが・・・例えば企業の休み > (お盆、正月、もしくは祝日など)を考慮 > したい場合、休みのデータを持ったテー > ブルを作るほうが無難ですか?それと > もSQL単文でも可能でしょうか?(長い > 文かつ効率が悪くても・・・) 普通は全日を持ったカレンダーマスタを持つかな。
その他の回答 (1)
- yorozu_ya
- ベストアンサー率54% (76/140)
回答No.1
>あと余談ですが・・・例えば企業の休み(お盆、正月、もしくは祝日など)を考慮したい場合、 >休みのデータを持ったテーブルを作るほうが無難ですか? 休みではなく、営業日のデータを持つのが正解です。 対象日と今日の間のレコード数を数えるのならSQL一発でできますよ。
質問者
お礼
ありがとうございました。
お礼
ありがとうございました。 大変参考になる意見ありがとうございました。