2017-08-28 66 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年8月29日至2017年9月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 
    ('2017-08-25' between date_from AND date_to) 
    and ('2017-09-15' between date_from AND date_to)