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!