Не используйте between
для этого!Это включает в себя обе конечные точки.Вместо этого:
where date >= current_date and
date < current_date + interval 1 day
Или:
where date >= current_date and
date < date_add(current_date, interval 1 day)
Вы (предположительно) не хотите полуночи между сегодняшним и завтрашним днем.
Кстати, если date
на самом деле это просто дата, а не datetime
, выше будет работать, но вы также можете написать:
where date = current_date
Я настоятельно не рекомендую вам использовать:
where date(date) = current_date
, потому что это мешаетиндекс на date
не используется.
Иногда люди путают MySQL и Oracle, потому что Oracle владеет обоими.В Oracle это будет выглядеть так:
where date >= current_date and
date < current_date + interval '1' day
Это на самом деле будет работать и в MySQL.Или используя специфичные для Oracle функции:
where date >= trunc(sysdate) and
date < trunc(sysdate) + interval '1' day