I am managing an event database. Every event has a start and end timestamp (INT, unix timestamp
).
Currently i\'m able to do the following things with a sing
When you want to query all events "today" (or some other date), event those starting in the past or "today" and ending "today" or in the future you need some query like:
SELECT * FROM `event` WHERE
(`start` >= :start) AND (`end` <= :end) OR
(`start` <= :end) AND (`end` >= :start)
ORDER BY start ASC
with ?
being your actual date.
Test data:
123456789
nn <-- :start, :end
xx 1
xx 2
xx 3 s
xx 4 s
xxxx 5 s
xx 6 s
Test query:
select * from event where
(start >= 4 and end <= 5) or
(start <= 5 and end >= 4)