Допустим, я веду базу данных событий, которые могут быть от еженедельного расписания часов работы компании (понедельник-пятница: с 10:00 до 19:00, сб: с 12:00 до 18:00, вс: выходной) до ежемесячных мероприятий (ярмарка произведений искусства, каждую первую субботу с 10:00 до 17:00) до ежегодного мероприятия ( Благотворительный ужин в сочельник, 19: 00–21: 00)
В идеальной ситуации я хотел бы запросить базу данных с любым днем, например: Четверг, 12 января 2012 г., 12:00
...и найти все события, которые происходят:
Я полагаю, что нет смысла говорить о построении запроса, не подумав предварительно, как такие даты / время будут храниться в базе данных.
Я не могу придумать, как можно смоделировать концепцию регулярных еженедельных рабочих часов (даже без учета крайних случаев) в единственном поле с одной записью, которое также моделировало бы событие раз в год. По крайней мере, мне кажется, что мне понадобится как минимум пять полей:
И я предполагаю, что нет способа заключить это в одну строку, верно? Например, предприятие, открытое каждый будний день, будет иметь пять записей.
И конечная цель - иметь возможность выполнить относительно элегантный запрос, который мог бы найти все записи событий, которые содержат данный момент в своем временном интервале.