Mysql — cours des 30 Derniers jours
J'ai un Tableau avec deux colonnes.
- La première colonne est une date stockée en tant que: (exemple):
01/01/2015 00:00:00
- Les secondes colonne est un nombre : comme (exemple) : 500
J'ai écrit une Instruction SQL qui ressemble à ceci:
select *
from cc_open_incident_view
WHERE (DATE =(NOW() - INTERVAL 1 MONTH))
Si j'exécute cette instruction, elle n'est pas en mesure de récupérer toutes les données et je ne peux pas trouver l'erreur
Je ne veux que les données pour le dernier mois, en tant que résultat de la requête (30 derniers jours).
Serais reconnaissant de toute aide..
Modifier que par l'OP commentaires:
Date est enregistrée en tant que date de et il du travail, mais la colonne date dans ma table a stocké les dates pour les 5 prochaines années et il montre les données comme: 09.03.2016
(qui est demain) trop. Est-il possible d'afficher uniquement la date à partir de 30 days
arrière jusqu'à today
?
- Stocker les dates que
date
s au lieu de chaînes, et vous permettra de résoudre ce problème . . . et autres . . . problèmes. - De deux choses. 1) assurez-vous que le jour vous êtes de passage dans l'est en réalité une date, vous pouvez convertir la date en SQL si nécessaire. 2) Maintenant() est de retour une fois de plus de la date, et la comparaison de l'ensemble de l'datetime pour l'égalité. Cela signifie que le temps est à faire de même.
- Merci pour la réponse. Oublié que le temps sera comparé trop. =)
Vous devez vous connecter pour publier un commentaire.
Edit: modification de la requête conformément à l'OP
Réponse Précédente:
Si la date est enregistrée en tant que
date
ensuite utiliser cetteSi la date est enregistrée comme une chaîne de caractères puis de l'utiliser (en supposant qu'il est dans
dd/mm/yyyy ...
Également noter que
CURDATE()
renvoie uniquement lesDATE
partie de la date, de sorte que si vous stockezyourdatetimecolumn
comme unDATETIME
avec la durée de la partie remplie, cette requête ne sélectionne pas la aujourd'hui dossiers.Dans ce cas, vous aurez besoin d'utiliser
NOW
à la place:Si le type de données est de type datetime ou timestamp (et que vous voulez vérifier le temps):
Si votre colonne de type de données de date:
Si votre colonne est une chaîne, vous devez le convertir d'abord en faisant:
http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date