Hallo, ich habe eine Tabelle mit einem Datumsfeld und einigen anderen Informationen. Ich möchte alle Einträge der letzten Woche auswählen (Woche ab Sonntag).
Tabellenwerte:
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
Ich möchte alle IDs der letzten Woche auswählen. Die erwartete Ausgabe ist 5, 6, 8. (ID 2 nicht in der letzten Woche und ID 15 in der aktuellen Woche.)
Wie schreibe ich und SQL Query für das gleiche.
SELECT id FROM tbl WHERE WEEK(date, 0) = WEEK(NOW(), 0) - 1
wochenlang verwenden, aber ich denke, sein Ziel sind keine echten Kalenderwochen. Zumindest erwähnte er nicht s / t wie ISO-8601 oder ob er möchte, dass der Jahreswechsel berücksichtigt wird.WHERE table.column >= DATE(NOW()) - INTERVAL 7 DAY
Antworten:
quelle
quelle
id 15
...Ich verwende die YEARWEEK-Funktion speziell, um zur vorherigen ganzen Kalenderwoche zurückzukehren (im Gegensatz zu 7 Tagen vor dem heutigen Tag). YEARWEEK erlaubt auch ein zweites Argument, das den Wochenbeginn festlegt oder bestimmt, wie die erste / letzte Woche des Jahres behandelt wird. Mit YEARWEEK können Sie die Anzahl der Wochen für das Hin- und Herbewegen in einer einzelnen Variablen beibehalten und nicht die gleiche Wochenzahl aus früheren / zukünftigen Jahren angeben. Sie ist weitaus kürzer als die meisten anderen Antworten hier.
quelle
WHERE YEARWEEK(dateColumnFromTbl, 1) = YEARWEEK(CURDATE() - INTERVAL 1 WEEK, 1)
Vereinfachte Form:
Daten der letzten Woche:
Vor 2 Wochen Daten:
SQL Fiddle
http://sqlfiddle.com/#!8/6fa6e/2
quelle
Sie können Ihre Berechnung in PHP durchführen und sie dann Ihrer Abfrage hinzufügen:
Jetzt wird dies das Datum für eine Woche geben
quelle
Der wahrscheinlich einfachste Weg wäre:
Für 8 Tage (dh Montag - Montag)
quelle
BITTE Leute ... 'Letzte Woche' wie das OP gefragt hat und wo ich gesucht habe (aber keine befriedigenden Antworten gefunden habe), ist DIE LETZTE WOCHE.
Wenn heute Dienstag ist, dann ist die letzte Woche Montag vor einer Woche bis Sonntag vor einer Woche .
So:
Oder für ISO-Wochen:
quelle
Sie müssen berechnen, welcher Tag im Vergleich zum heutigen Tag in Ihrer Middleware Sonntag ist (PHP, Python usw.) *
Dann,
quelle
Es kann in einer einzelnen Zeile stehen:
quelle
Ein einfacher Weg kann dieser sein, dies ist ein echtes Beispiel aus meinem Code und funktioniert perfekt:
quelle
Die obige Abfrage funktioniert nicht.
where
Wenn wir nach der KlauselCAST
den Spaltenwert nicht können, funktioniert er nicht. Sie solltencast
den Spaltenwert.z.B:
quelle
quelle
Ich mache oft auch einen kurzen "Last Week" Check und das Folgende funktioniert normalerweise gut für mich und schließt heute ein.
Wenn Sie möchten, dass dies heute NICHT enthalten ist, subtrahieren Sie einfach einen zusätzlichen Tag vom @EndDate. Wenn ich diese beiden Variablen heute auswähle, bekomme ich
Wenn ich Sonntag bis Sonntag wollte, hätte ich folgendes.
quelle
quelle
Sie können es auch so verwenden
quelle
i Verwenden Sie dies für die Woche ab SONNTAG:
quelle
Zum Beispiel Wie im letzten Monat, im letzten Jahr, in den letzten 15 Tagen, in den letzten 3 Monaten
Holen Sie sich den letzten WOCHEN-Datensatz
Verwenden der folgenden MySQL-Abfrage zum Abrufen der Datensätze der letzten Woche aus der MySQL-Datenbanktabelle.
quelle
Hier finden Sie eine Möglichkeit, die letzten Wochen-, Monats- und Jahresaufzeichnungen in MySQL abzurufen.
Letzte Woche
Im vergangenen Monat
Vergangenes Jahr
quelle
Wenn Sie Datensätze innerhalb der letzten 7 Tage abrufen möchten, können Sie das folgende Snippet verwenden:
quelle
Versuche dies:
quelle
Wenn Sie die Daten bereits kennen, können Sie sie einfach wie folgt verwenden:
quelle