Mysql gibt die Methode zur Datumsbereichsextraktion an

Mysql gibt die Methode zur Datumsbereichsextraktion an

Bei der Datenbankoperation ist der Umgang mit Daten unvermeidlich, z. B. das Zusammenfassen einiger Indikatoren nach Datum, das Zählen des Gesamtbetrags innerhalb eines bestimmten Zeitraums usw.

Handelt es sich um ein festes Datum, ist das in Ordnung und Sie können es einfach direkt angeben, in vielen Fällen muss es jedoch an das aktuelle Datum angepasst werden. Beispiel: Daten vom letzten Montag bis zum letzten Sonntag extrahieren, Daten vom letzten Monat extrahieren, Daten der vorherigen N Monate extrahieren. . .

Allen diesen Anforderungen ist gemeinsam, dass sie sich an das aktuelle Datum halten! Dann müssen wir zunächst einige Informationen zum aktuellen Datum abrufen, z. B. ob das aktuelle Datum die Nummer dieser Woche oder die Nummer dieses Monats ist usw., und dann können wir mit dem nächsten Schritt fortfahren.

1. Bevor wir den erforderlichen Datumsbereich extrahieren, stellen wir einige häufig verwendete Funktionen vor

-- Führen Sie zuerst diesen Satz aus: SET @t = '2018-07-26 11:41:29';
-- Führen Sie diesen Satz noch einmal aus: SELECT DATE(@t) aktuelles Datum, YEAR(@t) Jahr, MONTH(@t) Monat, WEEK(@t) Wochennummer dieses Jahres, DAY(@t) Tagesnummer dieses Monats, 
HOUR(@t) Stunden, MINUTE(@t) Minuten, SECOND(@t) Sekunden

Beim Ausführen ist das Ergebnis wie folgt:

2. Hier sind einige häufig verwendete Datumsadditions- und -subtraktionsfunktionen

1. ADDDATE(Ausdruck, Tage) / SUBDATE(Ausdruck, Tage):

Die Funktion ADDDAT hat zwei Parameter. Der erste ist das Basisdatum, also das zu berechnende Datum. Der zweite ist ein Intervallausdruck, beispielsweise: INTERVALL 1 STUNDE, wobei INTERVALL Intervall bedeutet, die mittlere Zahl 1 durch eine beliebige Ganzzahl ersetzt werden kann und die dritte Stunde durch Zeiteinheiten wie Tag/Monat/Jahr ersetzt werden kann.

Dasselbe gilt für SUBDATE, mit der Ausnahme, dass es sich um eine Subtraktionsoperation handelt.

Die vollständige Verwendung ist wie folgt:

SELECT ADDDATE('2018-07-26 11:41:29',INTERVALL 1 STUNDE);
SELECT SUBDATE('2018-07-26 11:41:29',INTERVALL 1 STUNDE);

2. DATE_ADD() / DATE_SUB():

Die Verwendung ist dieselbe wie bei ADDDATE(expr, days) / SUBDATE(expr, days).

3. Abfangen von Datumsbereichen

Als Nächstes können Sie mithilfe der oben vorgestellten Datumsfunktionen den Datumsbereich abfangen.

1. Letzte Woche

-- Extrahieren Sie den Datumsbereich der letzten Woche SELECT CURDATE() NOW,
ADDDATE(ADDDATE(DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 1 DAY),-6),0) Startdatum,
ADDDATE(DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 1 DAY),0) fällig bis Datum

2. Letzter Monat

- SELECT CURDATE() NOW für letzten Monat, 
DATE_ADD(DATE_ADD(CURDATE(),INTERVALL -TAG(CURDATE())+1 TAG), INTERVALL -1 MONAT) Startdatum,
DATE_ADD(DATE_ADD(CURDATE(),INTERVALL -TAG(CURDATE()) TAG), INTERVALL 0 MONAT) fällig bis Datum

3. Die ersten vier Monate

-- Erste vier MonateSELECT CURDATE() NOW, 
ADDDATE(ADDDATE(CURDATE(),INTERVALL -TAG(CURDATE())+1 TAG), INTERVALL -4 MONAT) Startdatum,
DATE_ADD(DATE_ADD(CURDATE(),INTERVALL -TAG(CURDATE()) TAG), INTERVALL 0 MONAT) fällig bis Datum

4. Letzten Donnerstag bis diesen Mittwoch

Manchmal werden Statistiken nicht nach natürlichen Wochen erfasst und Sie müssen die Start- und Enddaten einer Woche anpassen. Sie können dies wie folgt tun:

SELECT ADDDATE(DATE_SUB(CURDATE(),INTERVAL (WENN(WOCHENTAG(CURDATE())IN(3,4,5,6),WOCHENTAG(CURDATE()),WOCHENTAG(CURDATE())+7 )) + 1 TAG),-3) Startdatum
, ADDDATE(DATE_SUB(CURDATE(),INTERVALL (WENN(WOCHENTAG(CURDATE())IN(3,4,5,6),WOCHENTAG(CURDATE()),WOCHENTAG(CURDATE())+7 )) + 1 TAG),3)fällig bis Datum

OK, jetzt können Sie Zeit- und Datumsinformationen extrahieren und jedes Intervall abfangen.

Zusammenfassen

Oben ist die vom Herausgeber eingeführte Methode zum Extrahieren des angegebenen Datumsbereichs in MySQL. Ich hoffe, sie wird allen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • So verwenden Sie benutzerdefinierte Funktionen zum Extrahieren von Zahlen aus Zeichenfolgen in MySQL

<<:  Schritte zum Aktivieren von TLS in Docker für eine sichere Konfiguration

>>:  Vue erzielt einen nahtlosen Karusselleffekt (Laufschrift)

Artikel empfehlen

Detaillierte Erklärung des Übergangsattributs einer einfachen CSS-Animation

1. Verständnis der Übergangsattribute 1. Das Über...

Dieser Artikel hilft Ihnen, JavaScript-Variablen und -Datentypen zu verstehen

Inhaltsverzeichnis Vorwort: Freundliche Tipps: Va...

JavaScript zum Erzielen eines einfachen Countdown-Effekts

In diesem Artikelbeispiel wird der spezifische Co...

Detailliertes Tutorial zur Installation von InfluxDB in Docker (Leistungstest)

1. Voraussetzungen 1. Das Projekt wurde bereitges...

So setzen Sie das Root-Passwort in mysql8.0.12 zurück

Wenn Sie nach der Installation der Datenbank das ...

Detaillierte Erklärung zum MySQL-Datenarchivierungstool mysql_archiver

Inhaltsverzeichnis I. Überblick 2. pt-archiver Ha...

Zusammenfassung der Probleme bei der Installation von MySQL 5.7.19 unter Linux

Als ich MySQL zum ersten Mal auf meiner virtuelle...

JS versteht die Zeitzonen GMT und UTC genau

Inhaltsverzeichnis Vorwort 1. GMT Was ist GMT Ges...