我有一个事件表,开始和结束日期存储如下
event_id eventstartdate eventenddate
1 2012-10-02 2012-10-20
2 2013-09-27 2013-10-27
6 2013-10-18 2013-11-18
8 2012-11-06 2012-11-23
9 2013-02-05 2013-02-12
10 2013-06-11 2013-06-13
和我想显示事件顺序的事件开始日期从今天..并获得过去的事件基于事件开始日期在单个查询..
预期结果如下
event_id eventstartdate eventenddate
1 2013-09-27 2013-10-27
2 2013-10-18 2013-11-18
3 2013-06-11 2013-06-13
4 2013-02-05 2013-02-12
5 2012-11-06 2012-11-23
6 2012-10-02 2012-10-20
我认为您可以使用CURDATE()
获取实际数据,然后选择当前数据之前的所有行,然后使用ORDER BY
从今天开始按降序排序
SELECT *
FROM table
WHERE eventstartdate < CURDATE()
ORDER BY eventstartdate DESC
尽管我怀疑这是你想要的。我需要看到预期的结果,以便更好地理解这个问题。
SELECT Event_ID, EventStartDate, EventEndDate
FROM Table
ORDER BY EventStartDate
我认为你应该使用这个查询
SELECT * FROM
table
ORDER BY eventstartdate DESC
根据我的说法,它将以开始日期顺序为desc提供所有事件。表示今天的事件在顶部,减去当前日期的一个,以此类推。