Comparaison de dates avec MySQL DATE_FORMAT
Lorsque vous comparez des dates à l'aide de la fonction DATE_FORMAT de MySQL, il est crucial de comprendre que le format que vous choisissez affecte le résultat de la comparaison. .
Dans l'exemple donné, la table contient des dates au format « %d-%m-%Y », et la requête tente de les comparer à l'aide de l'attribut même format. Cependant, cela conduit à des résultats incorrects, car « 28-10-2012 » est lexicographiquement supérieur à « 02-11-2012 ».
Pour résoudre ce problème, il est recommandé de comparer les dates sous forme de dates plutôt que de chaînes. La requête correcte doit être :
select date_format(date(starttime),'%d-%m-%Y') from data
where date(starttime) >= date '2012-11-02';
Ici, la fonction date() extrait le composant date du champ starttime, tandis que date '2012-11-02' spécifie la comparaison date sous forme de valeur année-mois. Cela garantit que la comparaison est effectuée correctement en tant que dates.
Si starttime est un champ DATETIME, envisagez d'utiliser la requête suivante pour éviter une conversion répétée :
select date_format(date(starttime),'%d-%m-%Y') from data
where starttime >= '2012-11-02 00:00:00';
En général, il est conseillé d'utiliser la norme ISO-8601 pour le formatage de la date, comme y-M-d. Cependant, les requêtes ci-dessus montrent comment effectuer des comparaisons de dates à l'aide du format fourni.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3