1

イベントを取得するために、次のクエリがあります。

SELECT 
  * 
FROM
  events_table 
WHERE event_date > DATE_SUB(NOW(), INTERVAL 1 DAY)
ORDER BY event_status ASC,
  event_date ASC 

私がしたいのは、event_dateが次のすべての行を返すことだけですtoday

どこが間違っているのですか?手伝ってくれてありがとう

4

2 に答える 2

6

where句でこれはどうですか:

WHERE DATE(event_date) = DATE(NOW())

また、event_date でのインデックスの使用を妨げない別のオプション:

WHERE event_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY)
于 2012-12-10T18:12:21.130 に答える
2

使用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()
于 2012-12-10T18:12:17.407 に答える