2017-03-06 13 views
1

私のテーブルがあり、テーブルから交差する時間を選択しますシフト番号1が終了する前に、両方のシフトが結果セットに表示されます。は、次のように

ご協力いただきありがとうございます。

ありがとうございます。

答えて

1

まず、別々の列に日付と時刻を入れることは、このためには役に立ちません。だから、それらを組み合わせましょう。これには、データタイプを調整する必要があります。

with s as (
     select s.*, 
      (cast(startDate as datetime) + starttime) as startdatetime, 
      (cast(endDate as datetime) + endtime) as enddatetime 
     from shifts s 
    ) 
select s.* 
from s 
where exists (select 1 
       from s s2 
       where s.startdatetime < s2.enddatetime and 
        s.enddatetime > s2.startdatetime 
      ); 
+0

ブリリアント。どうもありがとう –