Php 如何检查mysql中是否存在数据时间?

Php 如何检查mysql中是否存在数据时间?,php,mysql,datetime,Php,Mysql,Datetime,有一个时间表系统 每个时隙仅存在一个预订 我这样保存数据: start_time datetime duration int 也就是说,如果从2015-12-20 21:00:00到2015-12-20 23:00:00 将是 现在,我想检查插入数据是否为: 1)时间范围与现有记录重叠? 2)是否超过24小时?例如,从22:00开始预订,但持续时间为5小时 我尝试类似的条件,但无法在24小时内检查 $start_time = new DateTime($_POST['start_time']

有一个时间表系统

每个时隙仅存在一个预订

我这样保存数据:

start_time datetime
duration int 
也就是说,如果从
2015-12-20 21:00:00到2015-12-20 23:00:00
将是

现在,我想检查插入数据是否为:

1)时间范围与现有记录重叠?

2)是否超过24小时?例如,从22:00开始预订,但持续时间为5小时

我尝试类似的条件,但无法在24小时内检查

$start_time = new DateTime($_POST['start_time']);
$end_time = new DateTime($booking_time);
$end_time =  $end_time->add(new DateInterval('PT' . $_POST['duration']. 'H'));

$_POST['start_time'] >= start_time AND  end_time <= start_time 
$start\u time=new DateTime($\u POST['start\u time']);
$end\u time=新日期时间($booking\u time);
$end_time=$end_time->add(新的日期间隔('PT'.$)\u POST['duration'.'H');

$\u POST['start\u time']>=开始时间和结束时间对于第二个条件,您是否尝试检查预订是否在开始的同一天结束

如果是这种情况,以下选择将返回符合此条件的预订:

从预订中选择开始时间、持续时间,其中日期(开始时间)日期(时间戳添加(小时、持续时间、开始时间))

$start_time = new DateTime($_POST['start_time']);
$end_time = new DateTime($booking_time);
$end_time =  $end_time->add(new DateInterval('PT' . $_POST['duration']. 'H'));

$_POST['start_time'] >= start_time AND  end_time <= start_time