我已經寫了下面的查詢,將嘗試選擇所有的事件,其中起始日期是從當前日期東西(我有表起始日期日期和結束日期字段):mysql表選擇不上市邏輯
$query = "SELECT id,title,start_date
FROM events
WHERE start_date > NOW() - INTERVAL 30 DAY AND city = '$cityName'
ORDER BY start_date DESC";
唯一上面的代碼有問題,因爲我意識到如果一個事件在NOW()
之前3個月開始,那麼它就不會顯示。我去了,並試圖重新寫它,但它沒有奏效。這就是我管理:
"SELECT id,title,start_date
FROM events
WHERE start_date >= NOW() - INTERVAL 30 DAY || start_date <= NOW() && end_date >= NOW() - INTERVAL 30 DAY";
我試圖做的是選擇所有事件,其中起始日期是大於或等於當前日期(NOW()
),甚至與起始日期選擇事件可能低於當前時間未定結束日期是在NOW()
之後。有關如何解決這個問題的任何建議?我希望它能夠顯示所有事件,只要它們尚未達成(當然,這意味着結束日期不低於當前的實際日期)。
感謝,
編輯:
$query = "SELECT id,title,start_date FROM events WHERE start_date > NOW() - INTERVAL 30 DAY AND city = '$cityName' ORDER BY start_date DESC";
$query_posted = "SELECT id,title,start_date FROM events WHERE start_date > DATE_SUB(NOW(), INTERVAL 1 MONTH) AND city = '$cityName' AND category = '$tag' ORDER BY start_date DESC";
我修改了它(不包括修改),但第二個失敗,我認爲這是由於另外兩個和的在後的第一個載入的活動結束。
'當然,這意味着結束日期的不低於當前實際date'少那不是意味着你需要'WHERE END_DATE> = NOW()'? – lanzz
@lanzz:你爲什麼不把它寫成答案? –