SQLで日付範囲の重複をチェックする必要が出たので調査しました。
SQLで日付範囲の重複をチェックする
SQLで日付範囲の重複をチェックするSQLです。
SELECT
any_key
,from_date
,to_date
FROM
[対象テーブル]
WHERE
(
( [チェックするfrom_date] <= from_date AND from_date <= [チェックするto_date] )
OR ( [チェックするfrom_date] <= to_date AND to_date <= [チェックするto_date] )
OR ( from_date <= [チェックするfrom_date] AND [チェックするto_date] <= to_date )
) AND any_key = 1
[/sql]
書かれてみると「なるほど」なんですが、毎回調べるのも大変なので、メモしておきます。