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!