Récupération d'enregistrements dans une plage de 30 jours dans MySQL
Les utilisateurs rencontrent souvent des difficultés lorsqu'ils tentent de récupérer des enregistrements ajoutés à une base de données MySQL dans un plage de dates spécifique, en particulier lors de l’utilisation du formatage de date. Cet article répond à ce défi en fournissant une solution complète pour récupérer les enregistrements entre aujourd'hui et les 30 derniers jours, garantissant un formatage de date approprié à des fins d'affichage.
La requête d'origine fournie dans la question a rencontré un problème où elle n'a pas réussi à limiter la sélection aux 30 derniers jours et a récupéré tous les enregistrements à la place. Pour corriger cela, il est crucial d'appliquer la fonction DATE_FORMAT au sein de la clause SELECT, plutôt que la clause WHERE. La requête corrigée est la suivante :
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') FROM mytable WHERE create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
Il est important de noter que CURDATE() récupère uniquement la partie date, à l'exclusion de l'heure. Si votre colonne create_date stocke les données sous la forme DATETIME avec un composant temporel différent de zéro, cette requête risque de ne pas renvoyer les enregistrements d'aujourd'hui.
Pour résoudre ce problème, envisagez d'utiliser NOW() à la place :
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') FROM mytable WHERE create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
Cette modification garantit que la requête renvoie les enregistrements ajoutés au cours des 30 derniers jours, y compris ceux ajoutés le jour en cours avec n'importe quelle composante temporelle.
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!