117 votes

MySQL Query pour sélectionner les données de la semaine dernière?

Bonjour, j'ai une table avec un champ de date et quelques autres informations. Je veux sélectionner toutes les entrées de la semaine dernière (semaine à partir du dimanche).

valeurs de la table:

 id  date
2   2011-05-14 09:17:25
5   2011-05-16 09:17:25
6   2011-05-17 09:17:25
8   2011-05-20 09:17:25
15  2011-05-22 09:17:25
 

Je veux sélectionner tous les identifiants de la semaine dernière, les sorties prévues sont 5, 6, 8. (l'identifiant 2 n'est pas dans la semaine dernière et l'identifiant 15 correspond à la semaine en cours).

Comment écrire et requête SQL pour le même.

152voto

mr_eclair Points 9503
select id from tbname
where date between date_sub(now(),INTERVAL 1 WEEK) and now();

131voto

piotrm Points 5420
SELECT id FROM tbl
WHERE date >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY
AND date < curdate() - INTERVAL DAYOFWEEK(curdate())-1 DAY

13voto

Anam Points 3752

Forme simplifiée:

Données de la semaine dernière:

 SELECT id FROM tbl


WHERE 
WEEK (date) = WEEK( current_date ) - 1 AND YEAR( date) = YEAR( current_date );
 

Il y a 2 semaines

 SELECT id FROM tbl


WHERE 
WEEK (date) = WEEK( current_date ) - 2 AND YEAR( date) = YEAR( current_date );
 

Violon SQL

http://sqlfiddle.com/#!8/6fa6e/2

9voto

Ibu Points 17457

Vous pouvez faire votre calcul en php puis l'ajouter à votre requête:

 $date = date('Y-m-d H:i:s',time()-(7*86400)); // 7 days ago

$sql = "SELECT * FROM table WHERE date <='$date' ";
 

maintenant cela donnera la date pour il y a une semaine

3voto

virtualeyes Points 5487

Vous aurez besoin de calculer quel jour par rapport à aujourd'hui est dimanche dans votre middleware (php, python, etc.) *

Ensuite,

 select id
from table
where date >= "$sunday-date" + interval 7 DAY
 
  • peut être aussi un moyen d’obtenir la date du dimanche par rapport à aujourd’hui dans MySQL; ce serait sans doute la solution plus propre si pas trop coûteux à effectuer

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