Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So erhalten Sie Datensätze zwischen 2 Daten in MySQL

Oft müssen Sie Daten zwischen zwei Daten für Berichte und Analysen abrufen. Es ist ziemlich einfach, Datensätze zwischen 2 Daten in MySQL zu erhalten, obwohl es keine eingebaute Funktion dafür gibt. Hier ist die SQL zur Auswahl von Datensätzen zwischen 2 Daten in MySQL, PostgreSQL und SQL Server.

So erhalten Sie Datensätze zwischen 2 Daten in MySQL

Hier ist die SQL zum Abrufen von Datensätzen zwischen 2 Daten in MySQL.

Nehmen wir an, Sie haben die folgende Tabelle sales(order_date, sale)

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

Bonuslektüre:So erhalten Sie Aufzeichnungen der letzten 24 Stunden

So erhalten Sie Zeilen zwischen 2 Daten in MySQL

Hier ist die SQL-Abfrage, um Datensätze zwischen 2 Daten in MySQL zu erhalten. Es gibt 2 Möglichkeiten, Zeilen zwischen 2 Daten zu erhalten – mit dem mathematischen Operator und mit der BETWEEN-Funktion. Wir werden uns diese beiden Methoden ansehen.

Bonuslektüre:  So erhalten Sie Datensätze der letzten 15 Tage in MySQL

Verwendung mathematischer Operatoren

Angenommen, Sie möchten Datensätze abrufen, bei denen order_date liegt zwischen 2 Daten 2020-06-02 und 2020-06-06. Hier ist die SQL, um Daten zwischen 2 Daten mithilfe mathematischer Operatoren abzurufen.

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 der obigen Abfrage wählen wir Datensätze aus, bei denen order_date am oder nach dem 02.06.2020 und am oder vor dem 06.06.2020 liegt. Sie können auch andere mathematische Operatoren wie>,<,=und <> mit Datumsangaben verwenden. Sie können diese SQL-Abfrage auch verwenden, um Datensätze zwischen 2 Daten in PostgreSQL, SQL Server und Oracle auszuwählen.

Bonuslektüre:So erhalten Sie den ersten Datensatz in jeder Gruppe in MySQL

Wenn Sie Datensätze von einem bestimmten Datum bis zum aktuellen Datum auswählen möchten, können Sie Systemfunktionen wie aktuelles_Datum verwenden oder jetzt() in Ihrer Abfrage.

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

Verwendung des BETWEEN-Operators

Sie können auch Daten zwischen 2 Daten mit dem BETWEEN-Operator

auswählen
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 |
+------------+------+

Bei der Auswahl von Datensätzen schließt der BETWEEN-Operator Datensätze zwischen diesen 2 von Ihnen erwähnten Daten sowie die Datensätze an den 2 Daten ein.

Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!