私が書いているプログラムでは、開始日(日付ピッカー付き)と終了日(これも日付ピッカー付き)でいくつかのオブジェクトを作成しています。次に、このオブジェクトの日付範囲が、データベースに保存されている他のオブジェクトの日付範囲と重複していないかどうかを確認する必要があります。含まれている場合はデータベースに保存できませんが、保存できない場合は保存できます。
誰かがこれを行う方法を知っていますか?
私が書いているプログラムでは、開始日(日付ピッカー付き)と終了日(これも日付ピッカー付き)でいくつかのオブジェクトを作成しています。次に、このオブジェクトの日付範囲が、データベースに保存されている他のオブジェクトの日付範囲と重複していないかどうかを確認する必要があります。含まれている場合はデータベースに保存できませんが、保存できない場合は保存できます。
誰かがこれを行う方法を知っていますか?
以下は、Garryが提案するものと同等です
select count(1)
from YourTable
where (@start < End and @end > Start)
最も単純なオーバーラップ チェックは、新しいイベントが別のイベントの終了前に開始され、開始後に終了したかどうかを確認することです。両方の条件が真の場合、新しいイベントは古いイベントと重複します。
select *
from YourTable
where @start < End and @end > Start