Maison > base de données > tutoriel mysql > Comment sélectionner correctement les données entre deux dates dans MySQL ?

Comment sélectionner correctement les données entre deux dates dans MySQL ?

Patricia Arquette
Libérer: 2024-11-20 12:48:13
original
602 Les gens l'ont consulté

How to Properly Select Data Between Two Dates in MySQL?

Sélection de données d'une base de données MySQL entre deux dates

Dans MySQL, la récupération de données dans une plage de dates spécifique présente un défi courant lors du stockage de dates comme valeurs datetime. L'utilisation des opérateurs >= et <= peut ne pas toujours donner les résultats souhaités en raison de l'interprétation par défaut de minuit comme début d'une date.

Considérez le scénario dans lequel vous souhaitez sélectionner les enregistrements dans lesquels se trouve la colonne create_at. entre le « 01/12/2011 » et le « 06/12/2011 ». L'exécution de la requête suivante exclura étonnamment l'enregistrement attendu qui s'est produit à « 2011-12-06 10:45:36 » :

SELECT `users`.* FROM `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= '2011-12-06'
Copier après la connexion

La raison est que MySQL interprète la date de fin comme minuit (« 2011- 12-06 00:00:00'), excluant effectivement les enregistrements créés plus tard dans la journée. Pour sélectionner l'enregistrement souhaité, modifiez la date de fin en « 2011-12-07 » :

SELECT `users`.* FROM `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= '2011-12-07'
Copier après la connexion

Vous pouvez également utiliser DATE_ADD() pour ajouter des jours à la date de début, créant ainsi un intervalle incluant la fin souhaitée. date :

SELECT `users`.* FROM `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= DATE_ADD('2011-12-01', INTERVAL 7 DAY)</p>
<p>Pour une meilleure lisibilité, l'opérateur BETWEEN peut être utilisé :</p>
<pre class="brush:php;toolbar:false">SELECT `users`.* FROM `users` 
WHERE created_at BETWEEN('2011-12-01', DATE_ADD('2011-12-01', INTERVAL 7 DAY))
Copier après la connexion

En ajustant la date de fin ou en utilisant la fonction DATE_ADD(), vous pouvez sélectionner avec précision les données de la plage de dates spécifiée, garantissant ainsi que tous les enregistrements créés à la date de fin prévue sont capturés.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal