MySQL ruft Daten der letzten 30 Tage ab

Migel Hewage Nimesha 20 Juni 2023
  1. Daten in die Datenbank importieren
  2. Verwenden Sie die Systemfunktion now(), um die Daten der letzten 30 Tage in MySQL abzurufen
  3. Verwenden Sie current_date(), um die Daten der letzten 30 Tage in MySQL abzurufen
  4. Verwenden Sie die Systemfunktion date_sub(), um die Daten der letzten 30 Tage in MySQL abzurufen
  5. Verwenden Sie den Befehl between, um die Daten der letzten 30 Tage in MySQL abzurufen
  6. Abschluss
MySQL ruft Daten der letzten 30 Tage ab

In diesem Artikel erfahren Sie, wie Sie die Datensätze der letzten 30 Tage mithilfe von SQL-Abfragen aus der Datenbank abrufen.

Daten in die Datenbank importieren

Importieren Sie zunächst einige Beispieldaten mithilfe einer SQL-Abfrage in die Datenbank. Vor dem Importieren eines Datensatzes müssen wir eine Tabelle unter einer Datenbank erstellen.

SQL-Abfrage:

create table sales(order_date date, sale int);

Die obige Syntax erstellt eine Verkaufs-Tabelle mit zwei Spalten als Bestelldatum und Verkauf. Typen von order_date und sale sind jeweils date und int.

Als Nächstes importieren wir einige Daten durch manuelle Eingaben in die Tabelle.

SQL-Abfrage:

insert into sales(order_date, sale)
values ('2022-09-04',230), ('2022-09-05',200), ('2022-09-06',210), ('2022-09-07',180), ('2022-09-08',220), ('2022-09-09',230), ('2022-09-10',220), ('2022-09-11',225), ('2022-09-12',200), ('2022-09-13',210), ('2022-09-14',190),('2022-09-15',200), ('2022-09-16',220), ('2022-09-17',210), ('2022-09-18',190), ('2022-09-19',180), ('2022-09-20',250), ('2022-09-21',240), ('2022-09-22',245), ('2022-09-23',230), ('2022-09-24',220), ('2022-09-25',210), ('2022-09-26',130), ('2022-09-27',200), ('2022-09-28',210), ('2022-09-29',221), ('2022-09-30',235), ('2022-10-01',237), ('2022-10-02',230), ('2022-10-03',220), ('2022-10-04',210), ('2022-10-05',200), ('2022-10-06',260), ('2022-10-07',270), ('2022-10-08',240), ('2022-10-07',290), ('2022-10-10',230);

Ausgang:

MySQL Daten der letzten 30 Tage abrufen - Daten importieren

Nach dem Importieren von Daten können wir die Daten jetzt gemäß unseren Anforderungen extrahieren.

In diesem Artikel werden drei Methoden erläutert, um Daten aus der Datenbank der letzten 30 Tage zu erhalten. Auch wenn es keine eingebauten Funktionen zum Abrufen von Datensätzen der letzten 30 Tage in MySQL gibt, können diese mithilfe der folgenden SQL-Abfragen abgerufen werden.

Verwenden Sie die Systemfunktion now(), um die Daten der letzten 30 Tage in MySQL abzurufen

Wenn wir alle Datensätze aus der Tabelle Verkäufe erhalten möchten, können wir die folgende Abfrage verwenden, die dabei hilft, alle Datensätze der Tabelle Verkäufe anzuzeigen.

SQL-Abfrage:

select * from sales

Wir können die Aufzeichnungen der letzten 30 Tage abrufen, indem wir die obige SQL-Abfrage ändern.

SQL-Abfrage:

select * from sales
where order_date > now() - interval 30 day;

Mit der obigen Abfrage können wir Datensätze auswählen, bei denen order_date nach einem Intervall der letzten 30 Tage liegt.

Ausgang:

MySQL ruft Daten der letzten 30 Tage ab – Ausgabe 1

Die Systemfunktion now() erhält den neuesten DateTime-Wert, und die interval-Klausel berechnet das Datum 30 Tage in der Vergangenheit.

Die Syntax der Intervall-Klausel ist wie folgt.

interval expr unit
  1. expr - die Menge
  2. Einheit – die Einheit für den interpretierten Betrag (z. B. STUNDE, TAG oder WOCHE)
  3. Intervall - Schlüsselwort und Einheitenbezeichner

Diese unterscheiden nicht zwischen Groß- und Kleinschreibung und können in Ausdrücken ausgeführt werden, indem Intervall mit dem +- oder --Operator kombiniert wird.

Verwenden Sie current_date(), um die Daten der letzten 30 Tage in MySQL abzurufen

Anstelle von now() können wir auch current_date() verwenden. Unten ist die SQL-Abfrage, wie wir das verwenden werden.

SQL-Abfrage:

select * from sales
where order_date > current_date - interval 30 day;

Ausgang:

MySQL ruft Daten der letzten 30 Tage ab – Ausgabe 2

In dieser Abfrage ist der Prozess derselbe wie in der obigen SQL-Abfrage, und hier ersetzen wir now() durch current_date().

Verwenden Sie die Systemfunktion date_sub(), um die Daten der letzten 30 Tage in MySQL abzurufen

Die Verwendung der folgenden SQL-Abfrage hilft auch dabei, Aufzeichnungen von 30 Tagen zu erhalten.

SQL-Abfrage:

select * from sales
where  `order_date` >= date_sub(curdate(), interval 30 day)

Ausgang:

MySQL ruft Daten der letzten 30 Tage ab - Ausgabe 3

Gemäß dem Obigen haben sie zwei einzigartige Verfahren verwendet, die sich von dem oben diskutierten Verfahren unterscheiden.

Hier haben sie die Funktion curdate() verwendet, um das aktuelle Datum zu finden, während date_sub() verwendet wird, um 30 Tage von der berechneten aktuellen DateTime abzuziehen.

Wie in der Ausgabe gezeigt, extrahiert die SQL-Abfrage die Daten der letzten 30 Tage aus dem Datensatz und zeigt sie an.

Verwenden Sie den Befehl between, um die Daten der letzten 30 Tage in MySQL abzurufen

Die folgende Abfrage ist eine Kombination der oben genannten Methoden. Abweichend von den obigen Methoden verwenden wir hier den Befehl BETWEEN in der SQL-Abfrage.

SQL-Abfrage:

select date_format(order_date,'%Y/%m/%d') from sales
where order_date between now() - interval 30 day and now()

Ausgang:

MySQL ruft Daten der letzten 30 Tage ab – Ausgabe 4

Die Verwendung des Befehls zwischen verhindert, dass zukünftige Datensätze abgerufen werden, und gibt die Datensätze genau zwischen dem angegebenen Zeitraum aus.

Hier extrahiert es die Datensätze zwischen den letzten 30 Tagen bis zum letzten Tag. Definieren Sie bei der frühesten Abfrage das Datumsformat für einen einfachen Zugriff auf die Ausgabe.

Abschluss

Insgesamt können wir mit den oben genannten Methoden die Aufzeichnungen der letzten 30 Tage abrufen und anzeigen. Es mag mehr Methoden geben, um die Datensätze der letzten 30 Tage mit der Kombination der oben diskutierten Methoden zu erhalten, aber dies sind die gebräuchlichsten Methoden, um die Datensätze der letzten 30 Tage zu extrahieren.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Verwandter Artikel - MySQL Date