Maison  >  Article  >  base de données  >  Comment récupérer des enregistrements avec l'horodatage du jour dans MySQL ?

Comment récupérer des enregistrements avec l'horodatage du jour dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-13 09:20:02792parcourir

How to Retrieve Records with Today's Timestamp in MySQL?

Comment sélectionner des lignes avec l'horodatage du jour en cours

Dans les systèmes de gestion de bases de données, il est courant de stocker des horodatages pour les enregistrements de données afin de suivre quand ils ont été créé ou modifié. Cependant, lorsque vous devez récupérer des données d'une table avec des horodatages, vous pourriez rencontrer des difficultés lors de la sélection d'enregistrements en fonction de dates spécifiques.

Énoncé du problème

Vous disposez d'une base de données table avec une colonne d'horodatage et vous souhaitez récupérer uniquement les enregistrements créés le jour en cours. Vous avez initialement utilisé la requête ci-dessous, mais vous avez remarqué qu'elle renvoie les enregistrements des dernières 24 heures, pas seulement la date du jour :

SELECT * FROM `table` WHERE (`timestamp` > DATE_SUB(now(), INTERVAL 1 DAY));

Solution

Pour sélectionner les lignes qui ont l'horodatage du jour en cours tout en ignorant l'heure, vous pouvez utiliser la requête suivante :

SELECT * FROM `table` WHERE DATE(`timestamp`) = CURDATE()
  • La fonction DATE() renvoie la partie date d'un horodatage, supprimant les informations d'heure.
  • La fonction CURDATE() renvoie la date actuelle en tant que valeur de date MySQL.

Avertissement :

Bien que cette requête obtienne le résultat escompté, elle peut ne pas fonctionner de manière optimale. L'utilisation de DATE() sur une colonne d'horodatage peut empêcher MySQL d'utiliser efficacement les index de cette colonne.

Pour une solution plus efficace, vous pouvez créer une colonne de date dédiée et stocker la partie date de l'horodatage dans cette colonne. . Cela permet à MySQL d'utiliser un index sur la colonne de date pour une interrogation plus rapide.

Voici un exemple de la façon dont vous pouvez créer une colonne de date dédiée et mettre à jour ses valeurs :

ALTER TABLE `table` ADD COLUMN `date` DATE NOT NULL;
UPDATE `table` SET `date` = DATE(`timestamp`);

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn