84 votes

MySQL SELECT ces derniers jours ?

Je jouais avec MYSQL et je sais qu'il existe une commande de limite qui affiche un certain nombre de résultats, mais je me demandais si MySQL seul peut afficher seulement les 3 derniers jours ou quelque chose comme ça. Je me demandais simplement.

Mise à jour : J'ai utilisé NOW() pour stocker les temps.

183voto

OMG Ponies Points 144785

A utiliser pour une date d'il y a trois jours :

WHERE t.date >= DATE_ADD(CURDATE(), INTERVAL -3 DAY);

Vérifiez le DATE_ADD documentation.

Ou vous pouvez utiliser :

WHERE t.date >= ( CURDATE() - INTERVAL 3 DAY )

15voto

akshay Points 1625

Vous pouvez l'utiliser dans votre clause WHERE de MySQL pour renvoyer les enregistrements qui ont été créés au cours des 7 derniers jours/semaines :

created >= DATE_SUB(CURDATE(),INTERVAL 7 day)

Utilisez également NOW() dans la soustraction pour obtenir la résolution hh:mm:ss. Ainsi, pour renvoyer les enregistrements créés exactement (à la seconde près) au cours des dernières 24 heures, vous pourriez faire ce qui suit :

created >= DATE_SUB(NOW(),INTERVAL 1 day)

2voto

Turnor Points 1376

Vous pourriez utiliser une combinaison de la fonction UNIX_TIMESTAMP() pour ce faire.

SELECT ... FROM ... WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(thefield) < 259200

-2voto

Vikas Kumar Points 11
SELECT DATEDIFF(NOW(),pickup_date) AS noofday 
FROM cir_order 
WHERE DATEDIFF(NOW(),pickup_date)>2;

ou

SELECT * 
FROM cir_order 
WHERE cir_order.`cir_date` >= DATE_ADD( CURDATE(), INTERVAL -10 DAY )

-3voto

ino Points 1

WHERE t.date >= DATE_ADD(CURDATE(), INTERVAL '-3' DAY);

utiliser des guillemets sur la valeur -3

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