sql >> Database >  >> RDS >> Mysql

Records tussen 2 datums ophalen in MySQL

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!

  1. Het probleem met vensterfuncties en weergaven

  2. Variabelen declareren en instellen in een Select-statement

  3. Oracle 11g Release 2 Enterprise Edition installeren op Windows 7 32-bits

  4. PostgreSQL kan geen transacties beginnen/beëindigen in PL/pgSQL