Maison > base de données > tutoriel mysql > le corps du texte

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

Barbara Streisand
Libérer: 2024-11-24 16:04:43
original
216 Les gens l'ont consulté

How to Correctly Select Data Between Two Dates in MySQL?

Sélection de données entre deux dates dans MySQL

Lorsque vous travaillez avec des données de date et d'heure dans MySQL, il est courant de devoir sélectionner des données qui se situent dans une plage de dates spécifique. . Cependant, lorsque vous utilisez la colonne create_at comme valeur datetime, l'interprétation par défaut est minuit pour les dates courtes.

Problème :

Vous pouvez rencontrer une situation où une requête comme ce qui suit ne renvoie pas de ligne, même si l'horodatage create_at de la ligne tombe dans la date spécifiée range:

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

Solution:

Le problème est que la requête sélectionne en fait des données avec une plage allant du '2011-12-01 00:00:00 ' à '06/12/2011 00:00:00'. Pour résoudre ce problème, il existe plusieurs approches :

  • Étendez la plage de dates de fin : modifiez la requête pour utiliser la plage suivante :
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-07'
Copier après la connexion
  • Utilisez DATE_ADD () : Calculez la date de fin en ajoutant un jour à la fin d'origine date :
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= DATE_ADD('2011-12-01', INTERVAL 7 DAY)
Copier après la connexion
  • Utiliser l'opérateur BETWEEN pour plus de lisibilité :
SELECT `users`.* FROM `users` WHERE created_at BETWEEN('2011-12-01', DATE_ADD('2011-12-01', INTERVAL 7 DAY))
Copier après la connexion

L'utilisation de l'une de ces approches sélectionnera correctement les données qui correspondent à la plage spécifiée plage de dates, y compris les lignes avec des horodatages créés_at tels que « 2011-12-06 10:45:36'.

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