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 single SQL query:
- build up a calendar, and mark days when an event occurring
- list occurring events on a given date (YYYY/MM/DD, YYYY/MM)
The problem is when an event spans several days i can't list it on a date between it's start and end timestamps.
For example:
Event starts on 2011/05/25 and ends on 2011/05/27 i can't list it on the page 2011/05/26.
My actual SQL query is
SELECT * FROM `event`
WHERE (`start` BETWEEN ? AND ?) OR (`end` BETWEEN ? AND ?)
ORDER BY start ASC
The two bound parameters (unix timestamps) are automatically calculated depending on what kind of parameter given (a whole month, or a specific day)
Is it possible to get these events (that spans several days) on a day between it's two endpoints extending my query above?
Please let me know if i can clarify my question.
Update
Example:
event start: 1309125660 (2011-06-27 00:01:00)
end end: 1314050340 (2011-08-22 23:59:59)
select start: 1312408860 (2011-08-04 00:01:00)
select end: 1312495199 (2011-08-04 23:59:59)
This event won't appear when i trying to list events occurring 2011/08/4