MySQL DATETIME выбрать между датами - PullRequest
4 голосов
/ 28 ноября 2011

У меня есть таблица mySQL с именем events с 4 полями (event_id, event_name, event_start_date, event_end_date)

Проблема в получении правильных событий

Я бы получил запись для всех активных событий за период времени, например, между 2011/03/01 и 2011/03/30

  1. событие 1 начинается в 2011/03/10 и заканчивается 2011/03/20 (начало и конец внутри)
  2. событие 2 начинается в 2011/02/05 и заканчивается 2011/03/23 (начинается до и заканчивается внутри)
  3. событие 3 начинается в 2011/03/25 и заканчивается 2011/05/01 (начинается внутри и заканчивается после)
  4. Событие 4 начинается в 2011/01/25 и заканчивается 2011/10/12 (начинается до и заканчивается после)

Все события активны в течение рассматриваемого периода времени и должны быть извлечены в виде записей

Понятия не имею, как заставить его работать правильно! Решения? Предложения? Идеи?

Спасибо

Ответы [ 3 ]

3 голосов
/ 28 ноября 2011

Предполагая, что @Start и @End содержат диапазон дат, который вы ищете:

SELECT * FROM Events
  -- Exclude items known to be outside the range
WHERE NOT ((event_end_date < @Start) OR (event_start_date > @End))
2 голосов
/ 28 ноября 2011

Попробуйте это:

SELECT
    event_id,
    event_name,
    event_start_date,
    event_end_date
FROM events
WHERE event_start_date <= '2011-03-30'
AND event_end_date >= '2011-03-01'
0 голосов
/ 28 ноября 2011
Select * From temp where mydate >= '2011-03-10' and mydate =< '2011-03-20';

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...