4

これを以下のような私のテーブルとしましょう。

ID | Startdate           | Enddate
-----------------------------------------------
1  | 2012-12-12 08:00:00 | 2012-12-15 18:30:00
-----------------------------------------------
2  | 2012-12-11 00:00:00 | 2012-12-16 00:00:00
-----------------------------------------------
3  | 2012-12-16 08:00:00 | 2012-12-17 18:30:00
-----------------------------------------------
4  | 2012-12-13 00:00:00 | 2012-12-14 11:30:00
-----------------------------------------------

選択した日付範囲は、Id 1、2012-12-1208:00:00から2012-12-1518:30:00です。日付範囲にまたがる日付を選択したいと思います。

正しいIDは、2と4になります。ご理解いただければ幸いです。ご不明な点がございましたら、お気軽にお問い合わせください。ありがとうございました。

4

2 に答える 2

2
select d1.*
from
  dates d1 inner join dates d2
  on d2.id=1 and d1.Startdate<d2.Enddate and d1.Enddate>d2.Startdate
where d1.id<>1
于 2012-12-12T14:49:23.650 に答える
1
SELECT t1.*
FROM YourTable t1
INNER JOIN
(
   SELECT StartDate, EndDate
   FROM YourTable 
   WHERE Id = 1
) t2 ON t2.StartDate < t1.StartDate AND t2.EndDate > t1.EndDate
于 2012-12-12T14:41:23.510 に答える