Mysql Datediff requête
J'ai besoin d'obtenir le résultat de la table, dont la date doit être la différence de 5 à partir de la date actuelle.
ie., specific_date
colonne est présente dans ma table. Le format de la date est YYYY-MM-DD
.
J'ai besoin de la requête quelque chose comme,
SELECT * FROM `table_name` WHERE DATEDIFF(NOW(), specific_date) < 5
OriginalL'auteur sathish | 2011-10-10
Vous devez vous connecter pour publier un commentaire.
Il semble que vous essayez de faire ceci:
Tout d'abord, réfléchissez bien à la limite des cas. Ces limites cas peuvent se mordre les chevilles en SQL. Avez-vous réellement envie
Faire votre
specific_date
colonnes horodateurs contiennent uniquement les jours (dates à temps égal à minuit) ou qu'ils ne contiennent des dates et les heures? Si vous allez obtenir les résultats que vous voulez, vous devez être prudent au sujet de ces détails.En tout cas, essayez ceci:
C'est un bon moyen de faire une telle recherche. La valeur de la colonne est le seul sur un côté de l'inégalité prédicat (le
<=
) si mySQL peut faire un index range scan si vous avez un index sur la colonne.Date de l'arithmétique dans MySQL est très flexible. Vous pouvez faire
et ainsi de suite.
N'cela fonctionne avec des heures ? par exemple:
WHERE specific_date <= DATE_ADD(NOW(), INTERVAL 24 HOUR)
Oui, voir mon edit.
OriginalL'auteur O. Jones
Ont un look à la
de l'opérateur.
Une autre méthode consiste à utiliser le
DATE_SUB
opérateurOriginalL'auteur Marcus