予約システムなどを構築する時にSQLで日付で期間の重複チェックを行う機会は多いと思います。
そこで、SQLで期間の重複チェックをする条件文をメモとして記載したいと思います。
実装方法
例として以下の項目を持ったhogeというテーブルがあったとします。- id
- start_date[開始日]
- end_date[終了日]
このパターンを全て対応したSQLは以下になります。
select count(*) from hoge where start_date <= :end_date and end_date >= :start_date
※:start_dateは登録予定の開始日 :end_dateは登録予定の終了日
このSQLで件数を取得し、2件以上だったら重複などの制御を入れることで日付の重複チェックが可能になります。
0 コメント:
コメントを投稿