我有一个id, user_id, start_date_time, end_date_time
的表
User_id有很多记录。我需要从user_id中搜索多个记录的Start_date_time和End_date_time之间的时间。例子
1,28,2019-11-16 18:00:00, 2019-11-16 20:00:00
2,28,2019-11-17 22:00:00, 2019-11-17 23:10:00
3,28,2019-11-17 23:00:00, 2019-11-17 23:15:00
如果我在任何给定时间进行搜索,则需要输出大于给定时间的所有记录。
所以如果我需要2019年11月17日22:15:00之前的记录,我需要输出2条记录。
能帮我举个例子吗?
答案 0 :(得分:1)
这是您想要的吗?
select t.*
from t
where t.end_date_time > ?;
?
是您要传递的值的参数占位符。
答案 1 :(得分:0)
如果您希望包含包含范围,则可以使用BETWEEN
:
select * from times
WHERE cast('2019-11-17 22:15:00' as datetime)
between `start_date_time` and `end_date_time`;
如果您不想在范围中包括开始时间和结束时间,则可以使用两个比较>
和<
:
select * from times
where cast('2019-11-17 22:15:00' as datetime) > start_date_time
AND cast('2019-11-17 22:15:00' as datetime) < end_date_time;
所以如果我需要2019年11月17日22:15:00之前的记录,我需要输出2条记录。
只有一排与您指定的日期相匹配,这是值得的; #2。