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

标签 php mysql datetime

有一个时间表系统,

每个时间段只存在一个预订,

我这样保存数据:

start_time datetime
duration int 

这意味着,如果从 2015-12-20 21:00:00 到 2015-12-20 23:00:00 预订 将是

start_time 2015-12-20 21:00:00
duration 3

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

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 

如何解决?

感谢帮助

最佳答案

对于第二个条件,您是否要检查预订是否会在预订开始的同一天结束?

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

SELECT start_time, duration FROM bookings WHERE DATE(start_time) <> DATE(TIMESTAMPADD(HOUR, duration, start_time));

关于php - 如何检查mysql中是否存在数据时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34381402/

相关文章:

php - MySQL INSERT INTO 无声地失败而没有错误

php - 查询2表连接

php - 从 PHP 数组中提取数据并分段回显

mysql - 将当前日期或时间插入 MySQL

javascript - PHP strtotime 给了我一个多小时

mysql - SQL查询选择每个产品的最后一个条目

mysql - 事件在 Go Daddy 服务器中不起作用?

php - 使用 PHP 按日期过滤 SQL 结果

python - MatPlotLib、日期时间和类型错误 : ufunc 'isfinite' not supported for the input types…

java - 在 JAVA 中将日期从字符串 "yyyyddmm hh:mm:ss"转换为字符串 "DD/MM/YYYY"