sql >> Database >  >> RDS >> Mysql

Records van de afgelopen 7 dagen ophalen in MySQL

Soms moet u records van de afgelopen 7 dagen ophalen of rijen van de afgelopen 7 dagen in MySQL krijgen. U kunt eenvoudig records van de afgelopen 7 dagen in MySQL krijgen, zelfs als er geen functie voor is. Dit is de SQL-query om records van de afgelopen 7 dagen te selecteren.

Hoe u records van de afgelopen 7 dagen in MySQL kunt ophalen

Hier is de SQL om records van de afgelopen 7 dagen in MySQL op te halen. Stel dat u de volgende tabel sales(order_date,sale) . heeft die dagelijkse verkoopgegevens bevat.

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

mysql> insert into sales(order_date, sale)
     values('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),
     ('2020-06-11',210);

mysql> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 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 |
| 2020-06-11 |  210 |
+------------+------+

Bonus lezen:hoe u records van de afgelopen 30 dagen kunt krijgen

Hoe u records van de afgelopen 7 dagen kunt ophalen

Hier is de SQL-query om records van de afgelopen 7 dagen in MySQL te krijgen.

mysql> select * from sales
     where order_date > now() - INTERVAL 7 day;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-05 |  200 |
| 2020-06-06 |  260 |
| 2020-06-07 |  270 |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
| 2020-06-11 |  210 |
+------------+------+

In de bovenstaande zoekopdracht selecteren we die records waar order_date valt na een afgelopen interval van 7 dagen. We gebruiken de systeemfunctie now() om de laatste datetime-waarde te krijgen, en de INTERVAL-clausule om een ​​datum te berekenen die 7 dagen in het verleden ligt.

U kunt ook current_date . gebruiken in plaats van nu()

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

Bonus lezen:hoe u records kunt krijgen tussen 2 datums in MySQL

Hoe u gegevens van de afgelopen week kunt krijgen

Hier leest u hoe u een record van de laatste week in MySQL kunt krijgen

mysql> select * from sales
       where order_date > now() - interval 1 week;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-05 |  200 |
| 2020-06-06 |  260 |
| 2020-06-07 |  270 |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
| 2020-06-11 |  210 |
+------------+------+

Bonus lezen:hoe u records van de afgelopen 24 uur in MySQL kunt krijgen

In de bovenstaande zoekopdracht selecteren we rijen waar order_date valt na een interval van afgelopen 1 week. We gebruiken het argument '1 week' voor de INTERVAL-clausule, in plaats van '7 day'.

Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!

  1. Evolutie van fouttolerantie in PostgreSQL

  2. Importeren van en exporteren naar bestanden met behulp van de MySQL-opdrachtregel

  3. Een kolom toevoegen aan een tabel in SQL

  4. sqlite geretourneerd:foutcode =1, msg =geen dergelijke kolom:keuken1