sql >> Database teknologi >  >> RDS >> Mysql

Sådan får du poster mellem 2 datoer i MySQL

Mange gange har du brug for at få data mellem 2 datoer til rapportering og analyse. Det er ret nemt at få poster mellem 2 datoer i MySQL selvom der ikke er indbygget funktion til det. Her er SQL'en til at vælge poster mellem 2 datoer i MySQL, PostgreSQL og SQL Server.

Sådan får du poster mellem 2 datoer i MySQL

Her er SQL'en til at få poster mellem 2 datoer i MySQL.

Lad os sige, at du har følgende tabel salg(ordre_dato, udsalg)

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 Læs:Sådan får du optegnelser fra sidste 24 timer

Sådan får du rækker mellem 2 datoer i MySQL

Her er SQL-forespørgslen for at få poster mellem 2 datoer i MySQL. Der er 2 måder at få rækker mellem 2 datoer – ved hjælp af matematisk operator og ved hjælp af BETWEEN-funktionen. Vi vil se på begge disse metoder.

Bonuslæser:  Sådan får du sidste 15 dages poster i MySQL

Brug af matematiske operatorer

Lad os sige, at du vil have poster, hvor ordre_date er mellem 2 datoer 2020-06-02 og 2020-06-06. Her er SQL'en til at hente data mellem 2 datoer ved hjælp af matematiske operatorer.

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 |
+------------+------+

I ovenstående forespørgsel vælger vi poster, hvor ordre_dato er på eller efter 2020-06-02 og på eller før 2020-06-06. Du kan også bruge andre matematiske operatorer såsom>,<,=og <> med datoer. Du kan også denne SQL-forespørgsel for at vælge poster mellem 2 datoer i PostgreSQL, SQL Server og Oracle.

Bonus Læs:Sådan får du den første post i hver gruppe i MySQL

Hvis du vil vælge poster fra en bestemt dato til den nuværende dato, kan du systemfunktioner som aktuel_dato eller nu() i din forespørgsel.

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 |
+------------+------+

Brug af operatoren BETWEEN

Du kan også vælge data mellem 2 datoer ved at bruge BETWEEN operatoren

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 |
+------------+------+

Mens du vælger poster, vil operatøren BETWEEN inkludere poster mellem de 2 datoer, du nævner, såvel som posterne på de 2 datoer.

Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!

  1. Hvad er formålet med at bruge OPTION(MAXDOP 1) i SQL Server?

  2. Hvorfor returnerer PostgreSQL ikke null-værdier, når betingelsen er <> sand

  3. PostgreSQL opret tabel, hvis den ikke eksisterer

  4. Perl DBI - kør SQL Script med flere sætninger