Sql: выбор между двумя датами ( дата начала и дата окончания)
Я не знаю, где разместить этот вопрос, но также надеюсь, что сформулировал его правильно.
Мне нужна помощь с sql, история ниже:
У меня есть таблица с датой начала и окончания, включая время(например, расписание). Он прекрасно работает. У меня есть проблемы, конфликты.
Допустим, у меня есть sql-таблица со следующей информацией informa:
Дата Начала: Дата Окончания
23 марта 2012 года 10:00 вечера 23 марта 2012 года 11:00 вечера
23 марта 2012 года 14:00 23 марта 2012 года 16:00
23 марта 2012 года 17:00 23 марта 2012 года 18:00
Я хочу добавить событие без конфликта – вот где проблема!
Предположим, что новое событие имеет ту же дату начала, но время с 12:00 до 15:00
Я ожидаю конфликта, так как время окончания (15:00) перекрывает 14:00 (второй ряд)
Вот что я сделал
Я проверил, существует ли дата начала, например
….
Где StartDate = @StartDate
…результаты
23 марта 2012 года 14:00 23 марта 2012 года 16:00
23 марта 2012 года 17:00 23 марта 2012 года 18:00
Если я расширяюсь проверяя если дата окончания не между любыми датами
Где StartDate = @ StartDate
И ((конечная дата между @ StartDate и @enddate или enddate = @ enddate В или enddate &ГТ;@ Дата окончания))
Это работает, но будет иметь еще одну проблему, когда StartDate находится между событием, скажем, 15 вечера. Я уже несколько часов пытаюсь решить эту проблему...
Вот процедура, которую я написал, но все еще не могу избежать некоторых дубликатов:
SELECT * FROM MyTable WHERE StartDate = @StartDate AND ((@EndDate BETWEEN StartDate AND EndDate OR EndDate = @EndDate OR EndDate > @EndDate))
Заранее поблагодарив вас, я погуглил возможные решения и не могу найти ни одного, которое было бы ближе к моему.
Boipelo
Позвольте мне кое-что прояснить… Я использую select, потому что хочу проверить, есть ли какие-либо строки перед сохранением.
Member 11811228
мне нужно кодирование во всех трех то есть jsp,html и sql для вызова shar fire в одной программе
Boipelo
Решение 1-это ваш ответ. Jsp не нужен.