Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP/MySQL datetime防止重复预订检查_Php_Mysql_Datetime - Fatal编程技术网

使用PHP/MySQL datetime防止重复预订检查

使用PHP/MySQL datetime防止重复预订检查,php,mysql,datetime,Php,Mysql,Datetime,与我正在创建的课程预订系统进行斗争。我在db中有一个日期,名为lesson_date_time,它使用mysql datetime,每节课持续一定的分钟数。(由于分钟数不同,我不会存储结束日期。) 为了防止从存储的日期时间加上所需的分钟数中进行任何双重预订,我似乎无法确定将执行检查以查看此时间段是否存在的sql 我现在有 $mins = "60"; $date_start = "2014-10-30 12:40:00"; $date_end = date("Y-m-d H:i:s", str

与我正在创建的课程预订系统进行斗争。我在db中有一个日期,名为lesson_date_time,它使用mysql datetime,每节课持续一定的分钟数。(由于分钟数不同,我不会存储结束日期。)

为了防止从存储的日期时间加上所需的分钟数中进行任何双重预订,我似乎无法确定将执行检查以查看此时间段是否存在的sql

我现在有

$mins = "60";
$date_start = "2014-10-30 12:40:00";
$date_end   = date("Y-m-d H:i:s", strtotime("$date_start + $mins minute"));

WHERE lesson_date_time BETWEEN CAST('$date_start' AS DATETIME) AND CAST('$date_end' AS DATETIME)
这会进行检查,但不会捕获任何开始日期在$start_日期之后的小时(或直到结束日期的时间段)内的条目

也试过

WHERE lesson_date_time >= '$date_start' and lesson_date_time =< '$date_end
其中课程日期时间>='$date\u start'和课程日期时间=<'$date\u end
即使退出,也找不到任何结果

是否可以做我想做的事情,或者如果我存储课程结束时间并从那里开始,是否更容易

其中,课程日期时间介于CAST('$date\u start'作为DATETIME)和CAST('$date\u end'作为DATETIME)

就等于

其中,课程日期时间>=CAST(“$date\u start”作为日期时间)和课程日期时间
$mins = "60";
$date_start = "2014-10-30 12:40:00";
$old_lesson_start = date("Y-m-d H:i:s", strtotime("$date_start - $mins minute"));
$date_end   = date("Y-m-d H:i:s", strtotime("$date_start + $mins minute"));

WHERE lesson_date_time BETWEEN CAST('$old_lesson_start' AS DATETIME) AND CAST('$date_end' AS DATETIME)