2017-05-18 7 views
0

の上に私は、SQL Serverの私の与えられた入力日付範囲ごとにレコードを選択します。 手段、 私のテーブルのレコードの下に持っている、パス日付範囲と

 
ProposedStartDate, ProposedEndDate, Roomid, Childid 
2016-11-01   2016-11-31   111  10001 
2016-12-15   2016-12-31   121  10001 
2017-01-01   2017-01-31   111  10001 
2017-01-01   2017-01-31   121  10001  
2017-02-01   2017-02-28   111  10001 

は今、私は日付の間のユニークなroomidでレコードを表示したいです。入力は以下のとおりです。「2016年12月25日」と「2017年1月15日」

+0

私がしようとしていますWHERE ProposedStartDate BETTWEEN InputStartDateとInputstrEndDateを介してデータを取得...しかし、私は**あなたがこれまでに試してみました何**、言ったように、正しいデータが表示されないとしても、私はまたInputStartDate> = ProposedStartDate OR InputEndDate <= ProposedEndDate – Yatin

+1

を試してみましたか?これは、あなたが望むデータを検索しようとするSQL文を含むあなたの投稿に[編集]することによって実証されます。 –

答えて

1

あなたの条件ごとに、これは動作するはずのよう

DECLARE @dates TABLE(ProposedStartDate varchar(10), ProposedEndDate varchar(10), Roomid int, Childid INT) 
insert into @dates values ('2016-11-01' , '2016-11-31' , 111 , 10001) 
insert into @dates values ('2016-12-15' , '2016-12-31' , 121 , 10001) 
insert into @dates values ('2017-01-01' , '2017-01-31' , 111 , 10001) 
insert into @dates values ('2017-01-01' , '2017-01-31' , 121 , 10001)  
insert into @dates values ('2017-02-01' , '2017-02-28' , 111 , 10001) 


select * from @dates 
     where CONVERT(datetime,ProposedStartDate)>=CONVERT(datetime, '2016-12-25') 
     and CONVERT(datetime,ProposedStartDate)<=CONVERT(datetime, '2017-01-15') 

結果は次のとおりです。

*-----------------*-----------------*--------*-------* 
|ProposedStartDate|ProposedEndDate |Roomid |Childid| 
*-----------------*-----------------*--------*-------* 
|2017-01-01  |2017-01-31  |111  |10001 | 
*-----------------*-----------------*--------*-------* 
|2017-01-01  |2017-01-31  | 121 |10001 | 
*-----------------*-----------------*--------*-------* 
+0

大変ありがとう – Yatin