寻找一些帮助,因为有一段时间一直在努力。
我有一个日期范围表:
"time_from" 2013-06-03 00:00:00, "time_till" 2013-07-03 00:00:00
"time_from" 2013-05-03 00:00:00, "time_till" 2013-06-03 00:00:00
然后我有一个提交新日期范围的表单。
提交此表单时,我想检查新日期范围的任何部分是否与任何当前日期范围的任何部分都不冲突。
任何人都可以提供帮助,我不会在MySQL
或PHP
完成这项工作。
由于
答案 0 :(得分:1)
你可以通过sql检查行是否存在相同的范围
select if(count(*) >0,'conflicts', 'does not conflict')
from yourTable
where ($startTime between time_from and time_till)
or ($endTime between time_from and time_till)
如果任何输入日期位于现有日期范围内,则会显示冲突,否则将导致不冲突
答案 1 :(得分:1)
您可以使用mysql查询轻松完成此任务
select * from table where
$variable_start BETWEEN time_from AND time_till OR $variable_end BETWEEN time_from AND time_till
如果您的时间介于日期范围之间,您将拥有行
答案 2 :(得分:0)
假设内部意味着存在冲突。
您需要检查每行:
您的日期范围START不会在当前日期范围START之前下降且您的日期范围结束在当前日期范围START之后不会下降
和
您的日期范围START在当前日期范围START之前没有下降且您的日期范围结束在当前日期范围END之后没有下降
和
您的日期范围START不会在当前日期范围END之前下降且您的日期范围结束在当前日期范围START之后不会下降
和
您的日期范围START在当前日期范围START之后不会下降且您的日期范围结束不会在当前日期范围END之前下降