Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2011, 12:33   #1
stalsoft
Форумчанин
 
Регистрация: 09.06.2011
Сообщений: 147
По умолчанию Выборка даты и время!

Все привет!
У меня есть задачка:
Есть программа, которая предназначенная для резервирования рабочих мест. соответственно на одно место одновременно можно посадить только одного человека. Когда место резервируется, то в специальную табличку вносятся данные id человека, id места и так далее, а также ДАТА И ВРЕМЯ НАЧАЛА И КОНЦА СМЕНЫ. Перед каждой операцией резервирования нужно проверять не занято ли это место.
НАПРИМЕР: вот хотим место 101 зарезервировать с 10:00 до 18:00...я например проверяю:
(((start_time BETWEEN @st AND @et) OR (end_time BETWEEN @st AND @et)) OR ((@st BETWEEN start_time AND end_time) OR (@et BETWEEN start_time AND end_time))) AND (end_time <> @st AND start_time <> @et), где "@st" "@et" - start time, end time.
Короче, мне не то что кажется, а я знаю что это способ тупой и неадыкватный)) подскажите пожалуйста как можно это сделать красиво))
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров;
stalsoft вне форума Ответить с цитированием
Старый 22.06.2011, 20:46   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

start_time<=@et AND end_time>=@st если выполняется, то нельзя резервировать. Этого вполне достаточно для проверки на пересекаемость двух временных интервалов при условии, что данные корректны, т.е. start_time<=end_time и @st<=@et

add достаточно будет start_time<@et AND end_time>@st, а то слишком математично получилось
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 23.06.2011 в 08:42.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дается две даты, высчитать переработанное время. Наркыз Microsoft Office Excel 16 06.10.2010 10:29
Выборка выборка с таблицы с отношением многие-ко-многим 8alig8 БД в Delphi 2 24.06.2010 12:21
Автоматизация заполнения даты и зависимость ячейки времени к ячейке даты. Каравай Microsoft Office Excel 14 11.03.2010 18:11
Вывести фамилии и даты рождения студентов, не получивших ни одной оценки 3 за все время обучения Гробовщик Общие вопросы C/C++ 1 14.01.2010 14:16
Выборка по полям с форматом даты Nowichok БД в Delphi 8 10.02.2007 17:42