我有一个包含事件数据的MySQL表。重要的列是from_date和to_date。两者都包含纪元时间戳,用于表示事件何时开始和结束。
我查询表格以使用以下方式提取指定日期范围内的事件:
from_date >= $from_date AND to_date <= $to_date
这一切都很好,但我现在的问题是,在from_date之前启动但与to_date规则匹配的事件未被选中,即事件在from_date之前开始但仍处于活动状态...同样适用于匹配from_date规则但传递to_date。我还需要在结果中看到“活动”事件。
有什么建议吗?
答案 0 :(得分:2)
将支票更改为:
`from_data` BETWEEN $from AND $to OR `to_date` BETWEEN $from AND $to
简体中文:活动在$from
和$to
之间开始或结束。
如果您的$from
和$to
为:10:00
和11:00
。然后这个查询会给你:
9:00 9:50 (no)
9:00 12:00 (yes)
9:00 10:10 (yes)
10:20 10:30 (yes)
10:50 11:10 (yes)
11:20 12:00 (no)
答案 1 :(得分:2)
如果我们搜索所有在$ to_date之前开始并在$ from_date之后结束的事件,它应该提取您要查找的内容。
from_date <= $to_date AND to_date >= $from_date
如果您的$ from和$ to是:10:00和11:00。然后这个查询会给你:
答案 2 :(得分:0)
我假设你以某种方式跟踪活动事件,也许你可以试试这个:
(from_date >= $from_date AND to_date <= $to_date) OR active = 1
这是一个不复制/粘贴代码的想法