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?
Vous sélectionnez simplement des dates supérieures à l'heure actuelle moins un jour.
SELECT * FROM news WHERE date >= now() - INTERVAL 1 DAY;
SELECT * FROM news WHERE date > DATE_SUB(NOW(), INTERVAL 24 HOUR)
SELECT * from new WHERE date < DATE_ADD(now(),interval -1 day);
Pour obtenir des enregistrements des dernières 24 heures:
SELECT * from [table_name] WHERE date > (NOW() - INTERVAL 24 HOUR)
SELECT * FROM news WHERE date > DATEADD(d,-1,GETDATE())
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 heure. Ne faites pas l'erreur de le comparer à 86400 (nombre de secondes dans une journée), sinon votre sortie sera erronée.