2017-08-28 8 views
0

私は以下の表のような表を持っています。SQL Serverで利用可能な日付を検索する

id accommodation_id room_type_id date_from date_to 
3 1      2   2017-08-29 2017-09-10 
4 1      9   2017-08-30 2017-09-08 

ご覧のとおり、2017-08-29から2017-09-10までの日付があります。今私はそれらの日付の間に検索を行う場合、たとえば2017-08-25から2017-09-15まで検索していますが、レコードは表示されません。私は自分の日付がテーブル上の日付の間の範囲にある場合にのみリストしたいと思います。

以下のクエリを使用すると、すべてのレコードが取得されます。私は望む結果を得るためにクエリを変更する方法?

SELECT id, accommodation_id, room_type_id, date_from, date_to 
FROM [Agents].[dbo].[Vacancies] 
where (date_from >= '2017-08-25' and date_to <= '2017-09-15') 

私は私の質問ではっきりしていることを願っています!

+3

は、私はあなただけ '不平等を変更する必要があると思います(DATE_FROM <=「2017年8月25日を」とDATE_TO> =「2017年9月15日」)' –

+0

あなたの日付列のデータ型は何ですか? 'date'と' datetime'は、あなたが時間コンポーネントを持っていれば、動作が異なります。 – Dai

+0

あなたが実際に望む結果を教えてください。 –

答えて

2

このようなwhere節を変更します。

WHERE 
    ('2017-08-25' between date_from AND date_to) 
    and ('2017-09-15' between date_from AND date_to) 
関連する問題