Пожалуйста, смотрите прикрепленное изображение
альтернативный текст http://img248.imageshack.us/img248/7743/datefrom.png
У меня есть таблица с FromDate и ToDate.FromDate - начало некоторого события, а ToDate - конец этого события.Мне нужно найти запись, если критерии поиска находятся в диапазоне дат.
например,
Если запись имеет FromDate 2010/15/5 и ToDate 2010/15/25 и мои критерииFromDate 2010/5/18, а ToDate - 2010/5/21, тогда эта запись должна быть в результатах поиска, поскольку она находится в диапазоне от 15 до 25.
Ниже приводится мой поисковый запрос (часть)
SELECT m.EventId
FROM MajorEvents
WHERE ( (m.LocationID = @locationID OR @locationID IS NULL) OR M.LocationID IS NULL)
AND (
CONVERT(VARCHAR(10),M.EventDateFrom,23) BETWEEN CONVERT(VARCHAR(10),@DateTimeFrom,23) AND CONVERT(VARCHAR(10),@DateTimeTo,23)
OR
CONVERT(VARCHAR(10),M.EventDateTo,23) BETWEEN CONVERT(VARCHAR(10),@DateTimeFrom,23) AND CONVERT(VARCHAR(10),@DateTimeTo,23)
)
Если критерий поиска равен FromDate или ToDate, то результаты в порядке, например, если критерий поиска равен DateFrom = 2010/5/15 AND DateTo = 2010/5/18, то эта запись будет возвращаться, поскольку Date From точночто такое DateFrom в дБ.
ИЛИ
Если критерием поиска является DateFrom = 2010/5/22 AND DateTo = 2010/5/25, то эта запись вернется, поскольку Date To - это именно то, чтоDateTo in db
Но если что-то между этим диапазоном не работает
Спасибо за помощь.
Редактировать:
Я не могу использовать <= или>, потому что это принесет все другие записи, которые меньше и грбольше, чем даты критериев поиска.
Я просто хочу получить те записи, которые находятся в эти даты Например, FromDate = 2010/5/15 и DateTo = 2010/5/25 Это диапазон дат, но событие относится ко всем датамМежду тем, одно из решений заключается в том, что я храню все даты с 2010/5/15 по 2010/5/25 в отдельной таблице, но если я могу сделать это с помощью запроса?
Вы также можете сказать мне, что это не таквозможно.