2017-07-14 189 views
-1

我需要检查房间(房间1)的输入时间表(日期时间)是否与房间(房间1)的时间表(同一时间表或不在范围内)冲突已被保留。我有这个疑问:检查日期时间输入和数据库日期时间

SELECT {Reserved}.[Id] FROM {Reserved} 
WHERE ('2017-07-14 8:00:00' between {Reserved}.[FromDate] and {Reserved}.[ToDate]) and 
     ('2017-07-19 12:00:00'between {Reserved}.[FromDate] and {Reserved}.[ToDate]) 

数据库的样本数据:

2017-07-14 8:00:00 
2017-07-17 12:00:00 

但问题是,它不会显示任何内容。谢谢。

+3

标签DBMS,提供更多的样本数据(这是什么表中?) – JohnHC

+1

@RahulKurup没有理由不使用'between'在这种情况下。 – AlexanderMP

+0

你有ANDED条件,第二个显然是在范围之外。看起来你想比较两个范围:'start_1 <= end_2和end_1> = start_2' – dnoeth

回答

0

看起来要检查两个范围重叠,逻辑是:

start_1 <= end_2 and end_1 >= start_2 

根据你的需要可能并不需要的= /通缉。

这相当于

SELECT {Reserved}.[Id] 
FROM {Reserved} 
WHERE '2017-07-14 08:00:00' <= {Reserved}.[ToDate] 
    AND '2017-07-19 12:00:00' >= {Reserved}.[FromDate] 
相关问题