Pendant que je recherchais cela, j'ai pensé qu'il serait bien de modifier la solution BETWEEN pour afficher un exemple pour une date non statique / chaîne particulière, mais plutôt une date variable, ou celle d'aujourd'hui telle que CURRENT_DATE()
. Cela utilisera l'index sur la colonne log_timestamp.
SELECT *
FROM some_table
WHERE
log_timestamp
BETWEEN
timestamp(CURRENT_DATE())
AND
timestamp(DATE_ADD(CURRENT_DATE(), INTERVAL '86399.999999' SECOND_MICROSECOND));
J'ai fait les secondes / microsecondes pour éviter le cas de 12h le lendemain. Cependant, vous pouvez également faire `` INTERVAL '1 DAY' 'via des opérateurs de comparaison pour une approche non-BETWEEN plus conviviale:
SELECT *
FROM some_table
WHERE
log_timestamp >= timestamp(CURRENT_DATE()) AND
log_timestamp < timestamp(DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY));
Ces deux approches utiliseront l'index et devraient fonctionner BEAUCOUP plus rapidement. Les deux semblent être tout aussi rapides.