mysql在30天范围内选择日期

sys*_*bug 6 mysql date

这一定很简单,但我摆弄它,并没有得到任何我想要的东西.我有以下代码:

SELECT id,title,start_date 
  FROM events 
 WHERE start_date > DATE_SUB(NOW(), INTERVAL 1 MONTH) 
  AND city = '$cityName' 
ORDER BY start_date DESC
Run Code Online (Sandbox Code Playgroud)

现在,这将选择本月有日期的事件,但查询中显示的本月定义与我需要的不同.我需要它在30天内向我展示事件,而不仅仅是本月即8月.如果我在八月插入一个事件,它会显示结果.如果我确实插入9月,即使它不到30天也不会.

Mar*_*ers 45

你应该1 MONTH改为30 DAY:

WHERE start_date > NOW() - INTERVAL 30 DAY
Run Code Online (Sandbox Code Playgroud)

在任何一个方向上限制为30天:

WHERE start_date > NOW() - INTERVAL 30 DAY
AND start_date < NOW() + INTERVAL 30 DAY
Run Code Online (Sandbox Code Playgroud)