我有一个事件表,每个事件都有一个开始日期和一个结束日期。
我需要显示日期列表并显示每天发生的事件。
例如,假设我有一个运行 mon-wed 的事件和另一个运行 tues-thurs 的事件,我正在尝试创建一个像这样的表:
Mon: Event 1
Tue: Event 1, Event 2
Wed: Event 1, Event 2
Thu: Event 2
我能看到的唯一方法是每天运行一个查询,或者加载给定日期范围内的所有事件,然后如果它们持续超过一天,则将它们复制到我的代码中。这两种方法看起来都很老套,我敢肯定我错过了一些东西。
有没有更简洁的方法来做到这一点?
结构:
id INT
name VARCHAR
start_date DATE
end_date DATE
当前查询(略微简化,因为此数据库结构令人震惊):
SELECT *
FROM events
WHERE start_date <= $somedate
AND end_date >= $somedate
...其中 $somedate 是给定的日期。(是的,我在我的代码中正确地转义了它!)