Extraire des lignes de moins de un jour
J'ai une colonne date
, qui a une valeur par défaut de CURRENT_TIMESTAMP
, par exemple: 2011-11-16 15:34:02
. Est-il possible de mettre une condition dans la base de données mysql déclaration (et non pas en php) pour récupérer les lignes qui sont à moins d'un jour? Quelque chose comme:
SELECT * FROM orders where date > 24 hours ago
OriginalL'auteur user1038814 | 2011-11-16
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
timestampadd()
pour obtenir le timestamp pour 24 heuresC'est l'équivalent de
OriginalL'auteur maček
Note les backticks autour de
date
, c'est un mot réservé.N'est pas nécessaire. Essayez
select now() + interval 1 day
. Vous obtiendrez un "demain" réponse.Je pense que vous voulez
>
au lieu de=
.au moment où j'ai écrit ma réponse, OP question était "qui sont d'un jour".
Intéressant d'apprendre quelque chose de nouveau chaque jour que la syntaxe dans le milieu de la DATE_ADD docs dev.mysql.com/doc/refman/5.5/en/...
OriginalL'auteur Marc B
yup, combiner *date_sub* avec intervalle de 1 jour et curdate() et peut-être autre chose
voir la documentation ici http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-sub
OriginalL'auteur max4ever
Cette instruction retourne aujourd'hui tous les rangs:
CURDATE()
renvoie la date d'aujourd'hui, de sorte que les recherches les enregistrements à partir de minuit.OriginalL'auteur T30
Vous pouvez aussi utiliser le différend directement avec
timestampdiff
fonction de la sorcière est similaire àtimestampadd
.Je pense que cela ne peut pas optimisé comme l'aide
timestampadd
(parce que c'calculer la différence pour chaque ligne) mais c'est, à mon avis, plus lisible et une alternative si vous n'avez pas de soins sur l'optimisation de l'.OriginalL'auteur PhoneixS