oracle SQL 进行时间冲突判断
背景:写一个预约模块,主要的限制就是时间限制,有冲突的时间段就不能进行预约
设数据库中的时间为A开始,A结束
设要判断的时间为B开始,B结束
则判断有在B开始时间大于等于A结束时间时无冲突,在B结束时间小于A开始时间的时候无冲突
对两种情况取反以后就可以得出与A时间段有冲突的部分,进而查询出相关内容
且只有在使用的测试项目相同才会判断,没有相同的记录就无所谓了
则在查询内容为null时,说明没有冲突,notnull时,有冲突,且输出冲突部分
SELECT *
FROM A a
WHERE ID IN ('传入的参数') AND
NOT ((TO_DATE('2021-11-06 00:00:00','YYYY-MM-DD HH24:MI:SS') >= END_TIME)
or (START_TIME >= TO_DATE('2021-11-07 00:00:00','YYYY-MM-DD HH24:MI:SS')))