Extrahieren von MySQL-Daten für die letzte Woche (Start am Sonntag)
Diese Anleitung zeigt, wie Sie MySQL-Daten der letzten Woche abrufen, beginnend am Sonntag davor. Um dies zu erreichen, nutzen wir die Datumsfunktionen von MySQL.
Die MySQL-Abfrage
Die folgende Abfrage filtert Daten effizient, um nur Datensätze der letzten sieben Tage einzubeziehen, beginnend mit dem vorherigen Sonntag:
<code class="language-sql">SELECT id FROM tbname WHERE date BETWEEN date_sub(CURDATE(), INTERVAL DAYOFWEEK(CURDATE())-1 DAY) AND CURDATE();</code>
Ausführliche Erklärung
CURDATE()
: Gibt das aktuelle Datum zurück.DAYOFWEEK(CURDATE())
: Bestimmt den Wochentag (1=Sonntag, 2=Montag,...,7=Samstag) für das aktuelle Datum.INTERVAL DAYOFWEEK(CURDATE())-1 DAY
: Berechnet die Anzahl der Tage, die abgezogen werden müssen, um zum vorherigen Sonntag zu gelangen. Wenn heute Sonntag ist, werden 0 Tage abgezogen; Wenn heute Montag ist, wird 1 Tag abgezogen und so weiter.date_sub(CURDATE(), INTERVAL DAYOFWEEK(CURDATE())-1 DAY)
: Subtrahiert die berechnete Anzahl von Tagen vom aktuellen Datum, was das Datum des vorherigen Sonntags ergibt.BETWEEN ... AND CURDATE()
: Wählt Datensätze aus, bei denen die Spalte „Datum“ in den Bereich vom vorherigen Sonntag bis zum aktuellen Datum fällt.Anschauliches Beispiel
Betrachten Sie diese Beispieltabelle:
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 |
Wenn Sie die obige Abfrage ausführen, wird Folgendes zurückgegeben:
id |
---|
5 |
6 |
8 |
Dadurch werden die IDs (5, 6 und 8) genau abgerufen, die Einträgen innerhalb der letzten Woche entsprechen, beginnend mit dem vorhergehenden Sonntag. Beachten Sie, dass die spezifischen Ergebnisse vom aktuellen Datum abhängen, an dem die Abfrage ausgeführt wird.
Das obige ist der detaillierte Inhalt vonWie rufe ich ab Sonntag MySQL-Daten der vergangenen Woche ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!