CURDATE () возвращает дату, например «2012-03-30», а не метку времени, например «2012-03-30 21:38:17». Вычитание одного дня также возвращает только дату, а не метку времени. Если вы хотите рассматривать дату как метку времени, подумайте о ней как о начале этого дня, то есть времени «00: 00: 00».
И это причина, почему это
WHERE date >= DATE_SUB(CURDATE(), INTERVAL 1 DAY)
и это
WHERE date > CURDATE()
сделать то же самое.
У меня есть еще одна подсказка: SELECT COUNT(entryID)
и SELECT COUNT(*)
дают тот же результат. SELECT COUNT(*)
дает машине базы данных больше возможностей для оптимизации подсчета, поэтому COUNT(*)
часто (не всегда) быстрее, чем COUNT(field)
.