php - 如何检查两个日期之间是否存在条目
问题描述
我有一个 sql 表“航班”,其中包含所有航班的所有详细信息:飞机登记、到达日期、出发日期等等......现在当我想创建一个新航班时,我想检查一个航班在两个给定日期之间已经存在相同的注册。EG:有一个名为 IFLY 的航班于 2019 年 7 月 22 日抵达并于 2019 年 7 月 25 日起飞,现在如果我尝试创建另一个具有相同注册但于 23/7/2019 抵达并于 2019 年 7 月 24 日起飞的航班,我会喜欢在数据库中检查在这些日期期间另一个具有相同注册的航班已经在数据库中并提醒用户。
我尝试过这样的事情: html form via jquery/ajax call a request on the DB
$regist = $_POST['regCreate'];
$arrivalDate = $_POST['adof'];
$departureDate =$_POST['ddof'];
$sql = "SELECT reg FROM flights WHERE reg = '$regist' AND (adof or ddof)
>= '$arrivalDate' AND (adof or ddof) <= '$departureDate' ";//
$data = mysqli_query($conn, $sql);
if (mysqli_num_rows($data) > 0) {
echo 'exists';
}
此代码不起作用,因为如果我创建一个位于已创建的两个日期之间的新航班不会给我例外结果。
解决方案
如果两个时间段每个都在另一个结束之前开始,则它们会重叠。
您可以将其表述为:
SELECT f.reg
FROM flights f
WHERE f.reg = ? and
f.departureDate < ? and -- the input arrival date
f.arrivalDate > ? -- the input departure date
请注意,我更改了语法以使用参数。这是在 PHP 或任何其他应用程序层中设计查询时的最佳实践。
推荐阅读
- mysql - mysql 8中case语句的替代方案
- visual-studio - 在带有 Unreal Engine 4 的 Visual Studio 中使用 NuGet 包
- python - 未使用的变量有问题吗?我怎样才能摆脱这个“错误”?
- ios - iOS14.2 SwiftUI PageTabView 会多次调用 ChildView onAppear 方法
- spring - 微服务架构中的可配置错误消息
- gradle - 多个工件的受控发布到工件(如果已发布,则跳过)
- sql-server - 缺少主键的建议
- javascript - 选择 2 选项 php ajax 后如何显示值
- mongodb - MongoDB-如何显示出现次数最多的时期?
- java - 我正在关注 youtube 教程,现在我遇到了问题,因为我想在 List 中返回,但它显示错误。我不明白错误