mySQL DATETIME在日期之间选择

时间:2011-11-27 20:03:24

标签: mysql sql datetime

我有一个名为events的mySQL表,包含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日结束(之前和之后开始) 结束后)
  5. 所有事件在考虑的时间段内都处于活动状态,应作为记录检索

    我不知道如何让它正常工作! 解决方案?建议?想法?

    由于

3 个答案:

答案 0 :(得分:3)

假设@Start和@End持有您正在寻找的日期范围:

SELECT * FROM Events
  -- Exclude items known to be outside the range
WHERE NOT ((event_end_date < @Start) OR (event_start_date > @End))

答案 1 :(得分:2)

试试这个:

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'

答案 2 :(得分:0)

Select * From temp where mydate >= '2011-03-10' and mydate =< '2011-03-20';

等等