Sélection de lignes avec l'horodatage du jour
Dans une base de données, il est souvent essentiel de récupérer des enregistrements en fonction de périodes spécifiques. Un scénario courant consiste à sélectionner des enregistrements comportant l'horodatage du jour. Cet article présente une solution à ce problème spécifique.
La question soulevée concerne la sélection d'enregistrements dans une table de base de données où le champ d'horodatage contient la date du jour, quelle que soit l'heure. La requête fournie utilise DATE_SUB() pour soustraire 24 heures à l'heure actuelle et récupère les résultats des dernières 24 heures.
Pour sélectionner des résultats en fonction uniquement de la date, nous pouvons exploiter DATE() et CURDATE() fonctions. Voici la requête modifiée :
SELECT * FROM `table` WHERE DATE(`timestamp`) = CURDATE()
Dans cette requête, DATE() extrait le composant date du champ d'horodatage, en supprimant les informations temporelles. CURDATE() renvoie la date actuelle, garantissant que nous récupérons uniquement les enregistrements du jour.
Cependant, il est important de noter que cette requête peut ne pas utiliser efficacement les index. Pour une solution plus optimisée, considérez la requête suivante, qui utilise une colonne de date indexée :
SELECT * FROM `table` WHERE `date` = DATE(NOW())
Comme cette requête compare directement la colonne de date avec la date actuelle, elle peut exploiter un index sur la colonne de date pour exécution plus rapide.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!