Maison >base de données >tutoriel mysql >Comment récupérer les enregistrements MySQL des 30 derniers jours, y compris aujourd'hui ?

Comment récupérer les enregistrements MySQL des 30 derniers jours, y compris aujourd'hui ?

DDD
DDDoriginal
2024-12-05 17:17:14747parcourir

How to Retrieve MySQL Records from the Last 30 Days, Including Today?

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!

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