イベントを取得するために、次のクエリがあります。
SELECT
*
FROM
events_table
WHERE event_date > DATE_SUB(NOW(), INTERVAL 1 DAY)
ORDER BY event_status ASC,
event_date ASC
私がしたいのは、event_dateが次のすべての行を返すことだけですtoday
どこが間違っているのですか?手伝ってくれてありがとう
イベントを取得するために、次のクエリがあります。
SELECT
*
FROM
events_table
WHERE event_date > DATE_SUB(NOW(), INTERVAL 1 DAY)
ORDER BY event_status ASC,
event_date ASC
私がしたいのは、event_dateが次のすべての行を返すことだけですtoday
どこが間違っているのですか?手伝ってくれてありがとう
where句でこれはどうですか:
WHERE DATE(event_date) = DATE(NOW())
また、event_date でのインデックスの使用を妨げない別のオプション:
WHERE event_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY)
使用CURDATE()
:
SELECT
*
FROM
events_table
WHERE event_date > CURDATE()
ORDER BY event_status ASC,
event_date ASC
これは、event_date が未来ではないことを前提としています...それ以外の場合は、DATE()
関数も使用する必要があります。
WHERE DATE(event_date) = CURDATE()