【发布时间】:2019-09-07 17:36:50
【问题描述】:
我需要从选择 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')."'";
但结果为 NULL。
供参考HERE'S一个sql小提琴。
提前感谢您为我指明正确的方向。
【问题讨论】:
-
简化问题,和PHP有关吗?您可以在 mysql 中进行日期/数学差异。 stackoverflow.com/questions/3401551/mysql-interval-mins
-
与数据库中的值相比,您的查询值显示什么?
-
@FunkFortyNiner 如果这是您想知道的,则当前输出为 NULL,否则我没有得到您的问题。
-
@Someone33 我的意思是,如果您“回显”查询和/或
var_dump()它,它究竟显示了什么?看到这一点,它可能会帮助您找出没有按照您想要的方式工作的地方。另一件事;如果您将日期存储为纯文本,MySQL 具有专门为此而设计的内置功能,这使得查询更加容易。 -
这就是问题所在。你不应该逃避任何事情。使用准备好的语句。
标签: php mysql date datetime time