Comment gérer l'ordre des dates pour un format spécifique dans MySQL ?
Lorsqu'il s'agit d'ordonner des dates dans MySQL, l'approche typique consiste à utilisez le modificateur DESC pour les formats tels que AAAA-MM-JJ. Cependant, une confusion survient lorsqu'il s'agit de différents formats de date, tels que JJ/MM/AAAA.
Dans le cas spécifique de la commande de dates au format JJ/MM/AAAA, la requête fournie ne fonctionne pas comme prévu. La requête tente d'appliquer la fonction DATE_FORMAT directement à l'expression DATE_FORMAT(Date, '%Y%m%d'), ce qui ne correspond pas au résultat souhaité.
Pour résoudre ce problème, vous disposez de deux options principales :
Formatage de la date de sortie uniquement : Si l'objectif est uniquement d'afficher la date au format JJ/MM/AAAA sans altérer la valeur réelle de la date, vous pouvez utiliser la requête suivante :
SELECT *, DATE_FORMAT(date,'%d/%m/%Y') AS niceDate FROM table ORDER BY date DESC LIMIT 0,14
Dans cette requête, la fonction DATE_FORMAT est appliquée à la colonne date avec le '%d/% m/%Y' pendant le processus de récupération des données. Les résultats afficheront les dates dans le format souhaité tout en laissant les valeurs de date sous-jacentes inchangées.
Tri réel par jour, mois et année : Si vous voulez vraiment pour classer les résultats par jour, puis par mois et enfin par année, comme suggéré par JJ/MM/AAAA, vous devrez utiliser une fonction de comparaison personnalisée. Cette fonction extraira les composants individuels de la date et effectuera une comparaison lexicographique. Voici un exemple de requête qui implémente cette approche :
SELECT * FROM table ORDER BY FORMAT_DAYOFMONTH(Date), FORMAT_MONTH(Date), FORMAT_YEAR(Date) DESC LIMIT 14
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!