2017-01-19 58 views
0

私たちは秋のレコードSTARTDATE nは終了日を選択するにはどうすればよい、与えられた2017年11月1日まで2017年2月1日から日付範囲を選択することで日付を日付と日付で指定してレコードを選択します。

StartDate | EndDate | ID 
--------------------------------- 
25-12-2016  30-12-2016 0 
01-01-2017  05-01-2017 1 
10-01-2017  12-01-2017 2 
01-02-2017  05-02-2017 3 

以下のようにレコードを持ちます期待どおりの日付範囲の間に?

StartDate | EndDate | ID 
------------------------------ 
01-01-2017  05-01-2017 1 
10-01-2017  12-01-2017 2 

答えて

2

をお試しください2つの日付範囲が重なっていないか確認してください これを行う方法は、一方が終了する前に開始し、他方が終了する前に開始することを確認することです。

SELECT StartDate, EndDate, ID 
FROM YourTable 
WHERE StartDate <= '11-01-2017' 
AND EndDate >= '02-01-2017' 
:あなたはあなたのクエリは、このようなものでなければなりません tag wiki.

で可視化を見ることができます

0

以下のようにテーブルの結果は以下の文字列で検索してください期待したいと思い、

DECLARE @V_START_DATE DATETIME = '2017-01-02' 
     ,@V_END_DATE DATETIME = '2017-01-11' 

SELECT * 
FROM @TABLE 
WHERE StartDate BETWEEN @V_START_DATE AND @V_END_DATE 
    OR EndDate  BETWEEN @V_START_DATE AND @V_END_DATE 
0

は、基本的には、あなたがどのように求めている、だから、以下のクエリ

SELECT * FROM DateRanges 
WHERE StartDate BETWEEN '02-01-2017' and '11-01-2017' 
OR ENDdate BETWEEN '02-01-2017' and '11-01-2017' 
関連する問題