90 votes

Trouver des enregistrements avec un champ de date au cours des dernières 24 heures

Dans ma requête SQL, comment puis-je lui trouver les enregistrements des dernières 24 heures? Par exemple

    SELECT * FROM news WHERE date < 24 hours
 

Je le fais habituellement en définissant une variable à date () - 1 jour et en la comparant à cela, mais je me demandais si la méthode de requête SQL était plus rapide?

143voto

a'r Points 14772

Vous sélectionnez simplement des dates supérieures à l'heure actuelle moins un jour.

 SELECT * FROM news WHERE date >= now() - INTERVAL 1 DAY;
 

74voto

Andrew Points 14278
SELECT * FROM news WHERE date > DATE_SUB(NOW(), INTERVAL 24 HOUR)

15voto

NarayanaReddy Points 11

SELECT * from [nom_table] WHERE date> (NOW () - INTERVALLE 24 HEURES)

3voto

Simon Points 3025
SELECT * FROM news WHERE date > DATEADD(d,-1,GETDATE())

3voto

Craig Labenz Points 631

Il y a tellement de façons de faire cela. Ceux énumérés fonctionnent très bien, mais voici un autre moyen si vous avez un champ datetime:

 SELECT [fields] 
FROM [table] 
WHERE timediff(now(), my_datetime_field) < '24:00:00'
 

timediff() renvoie un objet de temps, alors ne faites pas l'erreur de le comparer à 86400 (nombre de secondes dans une journée), sinon votre sortie sera erronée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X