Досліджуючи це, я вважав, що було б непогано змінити рішення МІЖ, щоб показати приклад для певної нестатичної / рядкової дати, а швидше змінної дати, або сьогоднішньої, наприклад CURRENT_DATE(). Це ВИКОРИСТОВУЄ індекс у стовпці log_timestamp.
SELECT *
FROM some_table
WHERE
log_timestamp
BETWEEN
timestamp(CURRENT_DATE())
AND
timestamp(DATE_ADD(CURRENT_DATE(), INTERVAL '86399.999999' SECOND_MICROSECOND));
Я зробив секунди / мікросекунди, щоб уникнути справи 12:00 наступного дня. Однак ви також можете зробити `` ІНТЕРВАЛ '' 1 ДЕНЬ '' за допомогою операторів порівняння для більш зручного для читачів підходу, не пов'язаного МІЖ:
SELECT *
FROM some_table
WHERE
log_timestamp >= timestamp(CURRENT_DATE()) AND
log_timestamp < timestamp(DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY));
Обидва ці підходи використовуватимуть індекс і повинні виконувати НАБАГАТО швидше. Обидва здаються однаково швидкими.