Vaak moet u gegevens tussen 2 datums ophalen voor rapportage en analyse. Het is vrij eenvoudig om records tussen 2 datums in MySQL te krijgen, ook al is er geen ingebouwde functie voor. Hier is de SQL om records te selecteren tussen 2 datums in MySQL, PostgreSQL en SQL Server.
Hoe records tussen 2 datums in MySQL te krijgen
Hier is de SQL om records tussen 2 datums in MySQL te krijgen.
Stel dat u de volgende tabel sales(order_date, sale) . heeft
mysql> create table sales(order_date date,sale int);
mysql> insert into sales(order_date,sale)
values('2020-06-01',250),
('2020-06-0',350),
('2020-06-02',400),
('2020-06-03',250),
('2020-06-04',200),
('2020-06-05',180),
('2020-06-06',150),
('2020-06-07',650),
('2020-06-08',500),
('2020-06-09',150);
mysql> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-01 | 250 |
| 2020-06-00 | 350 |
| 2020-06-02 | 400 |
| 2020-06-03 | 250 |
| 2020-06-04 | 200 |
| 2020-06-05 | 180 |
| 2020-06-06 | 150 |
| 2020-06-07 | 650 |
| 2020-06-08 | 500 |
| 2020-06-09 | 150 |
+------------+------+
Bonus lezen:hoe u records van de afgelopen 24 uur kunt krijgen
Hoe u rijen krijgt tussen 2 datums in MySQL
Hier is de SQL-query om records tussen 2 datums in MySQL te krijgen. Er zijn 2 manieren om rijen tussen 2 datums te krijgen - met behulp van de wiskundige operator en met de BETWEEN-functie. We zullen beide methoden bekijken.
Bonus lezen:hoe u records van de afgelopen 15 dagen in MySQL kunt krijgen
Wiskundige operatoren gebruiken
Stel dat u records wilt ontvangen waar order_date is tussen 2 data 2020-06-02 en 2020-06-06. Hier is de SQL om gegevens tussen 2 datums te krijgen met behulp van wiskundige operatoren.
mysql> select * from sales
where order_date>='2020-06-02'
and order_date<='2020-06-06';
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-02 | 400 |
| 2020-06-03 | 250 |
| 2020-06-04 | 200 |
| 2020-06-05 | 180 |
| 2020-06-06 | 150 |
+------------+------+
In de bovenstaande query selecteren we records waarvan order_date op of na 2020-06-02 en op of vóór 2020-06-06 valt. U kunt ook andere wiskundige operatoren gebruiken, zoals>,<,=en <> met datums. U kunt deze SQL-query ook gebruiken om records tussen 2 datums in PostgreSQL, SQL Server en Oracle te selecteren.
Bonus lezen:hoe u het eerste record in elke groep in MySQL kunt krijgen
Als u records wilt selecteren van een specifieke datum tot de huidige datum, dan kunt u systeemfuncties gebruiken zoals current_date of nu() in uw zoekopdracht.
mysql> select * from sales
where order_date>'2020-06-02'
and order_date<current_date;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-03 | 250 |
| 2020-06-04 | 200 |
| 2020-06-05 | 180 |
| 2020-06-06 | 150 |
| 2020-06-07 | 650 |
| 2020-06-08 | 500 |
+------------+------+
De operator BETWEEN gebruiken
U kunt ook gegevens tussen 2 datums selecteren met BETWEEN operator
mysql> select * from sales
where order_date
BETWEEN '2020-06-02' and '2020-06-06';
+------------+------+
| order_date | sale |
+------------+------+
| 2020-06-02 | 400 |
| 2020-06-03 | 250 |
| 2020-06-04 | 200 |
| 2020-06-05 | 180 |
| 2020-06-06 | 150 |
+------------+------+
Bij het selecteren van records zal de BETWEEN operator records opnemen tussen die 2 data die u noemt, evenals de records op de 2 data.
Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!