Comparaison de dates MySQL avec date_format
MySQL offre des capacités de comparaison de dates qui vous permettent de filtrer les enregistrements en fonction de contraintes chronologiques. Bien que la présentation des dates dans un format convivial avec des fonctions telles que date_format soit souvent nécessaire, cela peut introduire des complexités lors de l'interrogation de plages de dates.
Un scénario courant consiste à comparer des dates qui ont été formatées à l'aide de date_format, qui les transforme en cordes. En comparant des chaînes, vous pouvez exclure involontairement des dates valides en raison de l'ordre alphabétique. Par exemple, lorsque l'on compare la chaîne « 28-10-2012 » avec « 02-11-2012 » dans l'ordre croissant, « 28-10-2012 » sera placé de manière incorrecte après « 02-11-2012 » car le « 2 » dans le composant jour est numériquement supérieur au « 0 » dans l'autre chaîne de date.
Pour résoudre ce problème et garantir des comparaisons de dates précises, il est crucial de comparer les dates en tant que dates. Cela peut être réalisé en utilisant la fonction date, qui extrait le composant date d'un champ DATETIME ou DATE, puis en comparant les valeurs de date résultantes.
La requête révisée ci-dessous montre comment comparer des dates à l'aide de la fonction date :
select date_format(date(starttime),'%d-%m-%Y') from data where date(starttime) >= date '2012-11-02';
Dans cette requête, la fonction date(starttime) extrait le composant date du champ starttime et les valeurs de date résultantes sont comparées à l'aide de l'opérateur >=. Cela garantit que seules les dates du 02/11/2012 sont récupérées.
En comparant les dates en tant que dates, vous pouvez surmonter les contraintes d'ordre alphabétique associées aux comparaisons de chaînes et vous assurer que les résultats de vos requêtes reflètent vos critères chronologiques prévus.
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!