7

これは単純なはずですが、いじってみたところ、欲しいものが何も得られませんでした。次のコードがあります。

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

これで今月の日付のイベントが選択されますが、クエリに表示される今月の定義は必要なものとは異なります。今月、つまり 8 月だけでなく、30 日以内のイベントを表示する必要があります。8 月にイベントを挿入すると、結果が表示されます。9 月を挿入すると、あと 30 日未満ですが、挿入されません。

4

4 に答える 4

52

次のように変更する必要があり1 MONTHます30 DAY

WHERE start_date > NOW() - INTERVAL 30 DAY

いずれかの方向で 30 日に制限するには:

WHERE start_date > NOW() - INTERVAL 30 DAY
AND start_date < NOW() + INTERVAL 30 DAY
于 2012-08-23T19:45:38.783 に答える
2

次のようにしたらどうですか:

...WHERE DATE(start_date) BETWEEN DATE_SUB(NOW(),INTERVAL 30 DAY) and DATE_SUB(NOW(),INTERVAL 1 DAY) AND city...
于 2012-08-23T19:51:53.027 に答える
2

また

AND TIMESTAMPDIFF(DAY,YOURDATE,now()) < 30

これにより、30日間のスパンが得られます

于 2015-02-25T12:02:24.200 に答える
1

これも役立つことを願っています

SELECT id,title,start_date 
  FROM events 
 WHERE  city = "$cityName" AND 
TIMESTAMPDIFF(DAY,start_date,now()) < 30   
ORDER BY start_date DESC
于 2015-06-17T10:21:59.710 に答える