Database
 sql >> Datenbank >  >> RDS >> Database

So erhalten Sie Aufzeichnungen der letzten 30 Tage

Manchmal müssen Sie möglicherweise Zeilen der letzten 30 Tage abrufen oder die Daten des letzten Monats in MySQL abrufen. Es ist einfach, Aufzeichnungen der letzten 30 Tage in MySQL zu erhalten, obwohl es keine eingebaute Funktion dafür gibt. Hier ist die SQL-Abfrage, um Datensätze für die letzten 30 Tage auszuwählen.

So erhalten Sie Datensätze der letzten 30 Tage in MySQL

Hier ist die SQL, um Datensätze der letzten 30 Tage abzurufen. Nehmen wir an, Sie haben die folgende Tabelle sales(order_date, sale) die tägliche Verkaufsdaten enthält.

mysql> create table sales(order_date date,sale int);

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

mysql> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-05-04 |  230 |
| 2020-05-05 |  200 |
| 2020-05-06 |  210 |
| 2020-05-07 |  180 |
| 2020-05-08 |  220 |
|        ... |  ... |
|        ... |  ... |
| 2020-06-06 |  260 |
| 2020-06-07 |  270 |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
+------------+------+

Bonuslektüre:So erhalten Sie Datensätze zwischen 2 Daten in MySQL

So erhalten Sie Aufzeichnungen der letzten 30 Tage

Hier ist die SQL-Abfrage, um Datensätze der letzten 30 Tage in MySQL abzurufen.

mysql> select * from sales
     where order_date > now() - INTERVAL 30 day;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-05-12 |  200 |
| 2020-05-13 |  210 |
| 2020-05-14 |  190 |
|        ... |  ... | 
|        ... |  ... | 
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
+------------+------+

In der obigen Abfrage wählen wir die Datensätze aus, bei denen order_date fällt nach einem vergangenen Intervall von 30 Tagen. Wir verwenden die Systemfunktion now() um den letzten datetime-Wert zu erhalten, und die INTERVAL-Klausel, um ein Datum zu berechnen, das 30 Tage in der Vergangenheit liegt.

Sie können auch aktuelles_Datum verwenden statt jetzt()

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

Bonuslektüre:So erhalten Sie Aufzeichnungen der letzten 24 Stunden in MySQL

So erhalten Sie Daten für den letzten 1 Monat

Hier ist die SQL-Abfrage, um die letzten 1-Monats-Datensätze in MySQL abzurufen.

mysql> select * from sales
     where order_date > current_date - interval 1 month;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-05-11 |  225 |
| 2020-05-12 |  200 |
| 2020-05-13 |  210 |
|        ... |  ... |
|        ... |  ... |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
+------------+------+

Bonus-Lesung:So erhalten Sie Aufzeichnungen des aktuellen Monats in MySQL

In der obigen Abfrage wählen wir Zeilen aus, in denen order_date fällt nach dem letzten 1-Monats-Intervall. Wir verwenden das Argument „1 Monat“ für die INTERVAL-Klausel, anstatt „30 Tage“ zu verwenden

Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!