日付/時刻データ型MyTable
の と の両方を使用して、 にstart_date
格納されているこの単純なデータ セットから始めます。end_date
id start_date end_date
1 9/29/2012 9/30/2012
2 9/29/2012 10/2/2012
3 9/29/2012 11/1/2012
4 10/2/2012 11/1/2012
5 11/1/2012 11/2/2012
以下のクエリを実行し、andパラメータに and を指定すると、この出力結果セットが得られます2012-10-01
。2012-10-31
range_start
range_end
id start_date end_date
2 9/29/2012 10/2/2012
3 9/29/2012 11/1/2012
4 10/2/2012 11/1/2012
これがあなたが望んでいたものと似ていない場合は、質問を編集して、入力データの簡単なサンプル セットとそのサンプルから必要な出力を示してください。
start_date
また、 myおよびvaluesの時間コンポーネントend_date
はすべて真夜中だったことに注意してください。対応する時刻に他の時刻が含まれている場合は、それらに対処するためにクエリを修正する必要があります。
これは、私が使用したクエリの SQL です。
PARAMETERS range_start DateTime, range_end DateTime;
SELECT m.id, m.start_date, m.end_date
FROM MyTable AS m
WHERE
m.start_date Between [range_start] And [range_end]
OR m.end_date Between [range_start] And [range_end]
OR (m.start_date<[range_start] AND m.end_date>[range_end]);