Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пересечение интервалов времени 
V
    Опции темы
JokerJo
Дата 24.2.2011, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 24.2.2011

Репутация: нет
Всего: нет



Доброго времени суток. Товарищи выручите. Не могу сообразить такую вещь. Есть добавление событий в течении дня. Например событие А, которое уже присутствует в базе, будет проходить 25-02-2011 с 10:00 до 12:00. Других событий в этом интервале быть не может. Так вот, кто то упустил этот момент и решил добавить событие Б 25-02-2011 с 9:00 до 11:00 или с 9:00 до 13:00 или с 11:00 до 13:00. Тоесть все три варианта неизбежно пересекаются с временем указанным в событии А. Так вот вопрос, может кто с таким сталкивался. Как лучше для этого составить SQL вопрос? И вообще как лучше решить данную задачу по Вашему мнению. Все даты в базе хранятся в UNIX timestamp. Заранее благодарен за внимание к этому вопросу.

Вот допусти у нас есть запись в БД(UNIX_TIMESTAMP):

start_date: 1298628000
end_date: 1298631600

что в свою очередь означает:

start_date: 2011-02-25 12:00:00
end_date: 2011-02-25 13:00:00

Я хочу добавить запись:

start_date: 2011-02-25 11:00:00
end_date: 2011-02-25 13:00:00

Эта запись некорректна ибо пересекается с существующей записью. Ни у кого нет вариантов? Сам пока не додумался.

Как всегда все оказалось просто  smile 
Вот решение:
Код

"SELECT * FROM events e WHERE UNIX_TIMESTAMP('{$start_date}') <= e.end_date AND UNIX_TIMESTAMP('{$end_date}') >= e.start_date"



Это сообщение отредактировал(а) JokerJo - 25.2.2011, 02:39
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.