Maison >base de données >tutoriel mysql >Comment récupérer les enregistrements MySQL des 30 derniers jours, y compris aujourd'hui ?
Comment sélectionner les enregistrements de base de données entre aujourd'hui et les 30 derniers jours avec MySQL
Cette question cherche à récupérer les enregistrements ajoutés au cours des 30 derniers jours, avec une conversion de date requise pour l'affichage. La requête fournie tente d'utiliser DATE_FORMAT dans la clause WHERE, mais elle ne restreint pas la sélection comme prévu.
Solution
La solution correcte implique d'appliquer DATE_FORMAT dans le Clause SELECT :
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') FROM mytable WHERE create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
Raison de Correction
La fonction DATE_FORMAT de MySQL convertit une date dans un format spécifique, mais elle ne modifie pas la valeur de date sous-jacente. Par conséquent, il doit être appliqué après la clause WHERE, qui spécifie la plage de dates qui vous intéresse.
Considérations supplémentaires
Si create_date est stocké en tant que DATETIME avec un non- composant de temps zéro, l'utilisation de CURDATE() dans la clause WHERE ne sélectionnera pas les enregistrements d'aujourd'hui. Pour en tenir compte, utilisez plutôt NOW() :
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') FROM mytable WHERE create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
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!