Salut j'ai une table avec un champ de date et quelques autres informations. Je souhaite sélectionner toutes les entrées de la semaine dernière (début de la semaine dimanche).
valeurs de 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, la sortie attendue est 5, 6, 8. (l'identifiant 2 n'est pas dans la semaine dernière et l'identifiant 15 est dans la semaine en cours.)
Comment écrire et requête SQL pour le même.
SELECT id FROM tbl WHERE WEEK(date, 0) = WEEK(NOW(), 0) - 1
pendant des semaines, mais je suppose que son objectif n'est pas de vraies semaines calendaires. Au moins, il n'a pas mentionné s / t comme ISO-8601, ou s'il veut que le tournant de l'année soit pris en considération.WHERE table.column >= DATE(NOW()) - INTERVAL 7 DAY
Réponses:
la source
la source
id 15
...J'utilise la fonction YEARWEEK spécifiquement pour revenir à la semaine civile précédente (par opposition à 7 jours avant aujourd'hui). YEARWEEK autorise également un deuxième argument qui définira le début de la semaine ou déterminera comment la première / dernière semaine de l'année est gérée. YEARWEEK vous permet de conserver le nombre de semaines pour revenir / avancer dans une seule variable, et n'inclura pas le même numéro de semaine des années précédentes / futures, et c'est beaucoup plus court que la plupart des autres réponses ici.
la source
WHERE YEARWEEK(dateColumnFromTbl, 1) = YEARWEEK(CURDATE() - INTERVAL 1 WEEK, 1)
Forme simplifiée:
Données de la semaine dernière:
Il y a 2 semaines données:
Violon SQL
http://sqlfiddle.com/#!8/6fa6e/2
la source
Vous pouvez faire votre calcul en php puis l'ajouter à votre requête:
maintenant cela donnera la date d'il y a une semaine
la source
Le moyen le plus simple serait probablement:
Pendant 8 jours (c'est-à-dire du lundi au lundi)
la source
S'IL VOUS PLAÎT les gens ... «La semaine dernière» comme le PO m'a demandé et où je cherchais (mais je n'ai trouvé aucune réponse satisfaisante) est LA SEMAINE DERNIÈRE.
Si aujourd'hui est mardi, alors la SEMAINE DERNIÈRE est du lundi IL Y A UNE SEMAINE au dimanche IL Y A UNE SEMAINE .
Alors:
Ou pour les semaines ISO:
la source
Vous devrez calculer quel jour par rapport à aujourd'hui est dimanche dans votre middleware (php, python, etc.) *
Ensuite,
la source
Cela peut être sur une seule ligne:
la source
Un moyen simple peut être celui-ci, c'est un vrai exemple de mon code et fonctionne parfaitement:
la source
La requête ci-dessus ne fonctionnera pas. Après la
where
clause, si nous ne pouvons pasCAST
la valeur de la colonne, cela ne fonctionnera pas. Vous devriezcast
la valeur de la colonne.par exemple:
la source
la source
Je fais souvent une vérification rapide de la «semaine dernière» aussi et ce qui suit a tendance à bien fonctionner pour moi et comprend aujourd'hui.
Si vous voulez que cela ne soit PAS inclus aujourd'hui, soustrayez simplement un jour supplémentaire de @EndDate. Si je sélectionne ces deux variables aujourd'hui, obtenez
Si je voulais du dimanche au dimanche, j'aurais ce qui suit.
la source
la source
Vous pouvez également l'utiliser de manière simple
la source
i Utilisez ceci pour la semaine commençant le DIMANCHE:
la source
Pour plus d'exemple Comme le mois dernier, l'année dernière, les 15 derniers jours, les 3 derniers mois
Récupérer l'enregistrement de la dernière semaine
Utilisation de la requête MySQL ci-dessous pour récupérer les enregistrements de la semaine dernière à partir de la table de base de données mysql.
la source
Voici un moyen d'obtenir les enregistrements de la semaine, du mois et de l'année dernière dans MySQL.
La semaine dernière
Le mois dernier
L'année dernière
la source
Si vous souhaitez récupérer des enregistrements au cours des 7 derniers jours, vous pouvez utiliser l'extrait ci-dessous:
la source
Essaye ça:
la source
Si vous connaissez déjà les dates, vous pouvez simplement utiliser entre, comme ceci:
la source