Php 搜索3个日期范围之间的记录

Php 搜索3个日期范围之间的记录,php,mysql,date,datetime,time,Php,Mysql,Date,Datetime,Time,我需要从一个DB表中输出数据,该表选择3(而不是2)个日期/时间范围之间的记录 例如开始时间:2019-09-07 18.00 结束时间:2019-09-07 20.00 因此,在事件期间,用户应该能够在开始日期时间(6.p.m-18.00)之前25分钟看到记录,但在结束日期时间(8.p.m-20.00)之后不能看到记录 我试过了 db->query = "SELECT o_id, schedule, date, start_time, end_time FROM working_sche

我需要从一个DB表中输出数据,该表选择3(而不是2)个日期/时间范围之间的记录

例如开始时间:2019-09-07 18.00 结束时间:2019-09-07 20.00

因此,在事件期间,用户应该能够在开始日期时间(6.p.m-18.00)之前25分钟看到记录,但在结束日期时间(8.p.m-20.00)之后不能看到记录

我试过了

db->query = "SELECT o_id, schedule, date, start_time, end_time FROM working_schedule WHERE o_id = '".$user_id."'
AND (start_time <= '".date('Y-m-d\TH:i:s', strtotime("-25 minutes"))."' AND start_time >= '".date('Y-m-d\TH:i:s')."') 
AND end_time >= '".date('Y-m-d\TH:i:s')."'";
db->query=“从工作计划中选择o\u id、计划、日期、开始时间、结束时间,其中o\u id=””“$user\u id.”
和(开始时间=“.date('Y-m-d\TH:i:s')。”)
结束时间>='.date('Y-m-d\TH:i:s');
但结果是空的

作为参考,请使用sql FIDLE

提前感谢您为我指明了正确的方向。

您需要这个吗

 select * from working_schedule
 where
 NOW() BETWEEN DATE_SUB(start_time,INTERVAL 25 MINUTE)  AND end_time

简化问题,是否与PHP相关?您可以在mysql中进行日期/数学微分。与数据库中的值相比,您的查询显示的值是什么?@FunkFortyNiner当前输出为空,如果这是您想知道的,否则我没有理解您的问题。@Someone33我的意思是,如果您“回显”查询和/或
var\u dump()
it,它到底显示了什么?看到这一点,它可能会帮助你找出什么东西没有按你希望的方式工作。还有一件事如果您将日期存储为纯文本,MySQL有专门为此而设计的内置功能,这使得查询更加容易。这就是问题所在。你不应该逃避任何事情。使用事先准备好的陈述。太好了,就是这样!非常感谢,我决不会这样做。