检查日期时间输入和数据库日期时间
问题描述:
我需要检查房间(房间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
但问题是,它不会显示任何内容。谢谢。
答
看起来要检查两个范围重叠,逻辑是:
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]
标签DBMS,提供更多的样本数据(这是什么表中?) – JohnHC
@RahulKurup没有理由不使用'between'在这种情况下。 – AlexanderMP
你有ANDED条件,第二个显然是在范围之外。看起来你想比较两个范围:'start_1 = start_2' – dnoeth