SQL查询显示最近的日期?

Or *_*ger 33 mysql sql datetime

我正在试图弄清楚如何编写一个MySQL查询,它将返回最近的3个事件的日期.

这是我的表:

EVENT_ID    EVENT_NAME     EVENT_START_DATE(DATETIME)
1           test           2011-06-01 23:00:00
2           test2          2011-06-03 23:00:00
3           test3          2011-07-01 23:00:00
4           test4          2011-08-09 23:00:00
5           test5          2011-06-02 23:00:00
6           test6          2011-04-20 23:00:00
Run Code Online (Sandbox Code Playgroud)

所以查询结果应该是ID的1,2,5,因为它们与当前日期相比最接近.

编辑:查询应该只找到未来的事件.

Mat*_*Mat 68

SELECT event_id 
FROM Table 
ORDER BY ABS( DATEDIFF( EVENT_START_DATE, NOW() ) ) 
LIMIT 3
Run Code Online (Sandbox Code Playgroud)

ABS()意味着1天前的事件与未来1天的事件一样接近.如果您只想要尚未发生的事件,请执行此操作

SELECT event_id 
FROM Table 
WHERE EVENT_START_DATE > NOW() 
ORDER BY EVENT_START_DATE 
LIMIT 3 
Run Code Online (Sandbox Code Playgroud)


hsz*_*hsz 5

  SELECT *
    FROM table
   WHERE EVENT_START_DATE >= NOW()
ORDER BY EVENT_START_DATE
   LIMIT 3
Run Code Online (Sandbox Code Playgroud)