Задавайте вопросы, мы ответим
Вы не зашли.
Есть таблица:
Неактивен
А почему не сделать просто
WHERE begin < '2010-06-24 07:00:00' AND end > '2010-06-24 08:00:00' ?
Неактивен
потому что зал который занят на 7: 30: 00 : 7: 45: 00 в результат данного запроса не попадет
Неактивен
Схитрю и поменяю чиселки местами
WHERE begin < '2010-06-24 08:00:00' AND end > '2010-06-24 07:00:00' ?
Неактивен
Неактивен
Почему Вы хотите все время разделить дату и время? Это одна величина по смыслу,
работайте с ней как с одной величиной?
Или в чем смысл запроса? Показать, занята ли переговорка во временной интервал?
Или показать, занята ли переговорка каждый день с 7 до 9?
Неактивен
Goals :
При занятии зала заседаний , проверить свободный ли он на данную дату в данное время.
Так же там есть возможность рекурсивно заполнить на 1 недел, 2 недели, мес.
Соответсвенно , нам нужно проверить На 1,2,4 недели вперед на данное время зал.
Неактивен
Хм. Давайте тогда напишу кучку мыслей, а Вы подумаете, как лучше сделать
1. Если Вы используете функцию над полем, то индексы использовать не полу-
чится никогда. Поэтому TIME(begin) — самое плохое, что можно придумать.
2. Скорее всего, зал не бронируется на ночь, поэтому можно отделить три поля
`date` DATE, `begin` TIME, `end` TIME. Так Вы по крайней мере сможете по
индексу вытащить строки с нужной датой.
3. Если держать одно поле, то самым эффективным с точки зрения индекса явля-
ется случай, когда оно одно (т.е. нет begin и end). Тут можно сделать какую-то
денормализацию.
Неактивен
2 вариант
Неактивен