15

日付範囲が別の日付範囲の間にあるかどうかを識別する方法が sql (t-sql を推奨) にあるかどうかを調べようとしています。

私の例の目的のために: daterange1 = 定義された日付範囲があり、日付は 2012 年 1 月 1 日から 2012 年 1 月 5 日です。 daterange2 = 作業する他の 2 つの日付があります。 /2012

私はこれをこのようなもののCASEステートメントで使用しようとしています

CASE 
    WHEN daterange1 = 0 then result1
    WHEN daterange2 falls within daterange1 then result2 
    END as datestuff 

これはSQLで可能ですか?私はこれに本当に困惑しています。単一の日付が範囲内にあるかどうかを判断する方法は知っていますが、日付範囲でどのように行うことができますか? 答えは必ずしも CASE ステートメントにある必要はありませんが、推奨されます。

4

2 に答える 2

27

daterange1 = 0範囲、つまり 2 つの値であるため、どうすれば を取得できますか?

重複する日付の適切なテストは次のとおりです。

CASE WHEN @range1start <= @range2end
      and @range2start <= @range1end THEN 1 ELSE 0 END

daterange2 が完全に daterange1 内に収まる必要があるという意味であれば、

CASE WHEN @range1start <= @range2start
      and @range2end <= @range1end THEN 1 ELSE 0 END
于 2012-10-11T23:14:40.847 に答える