Wiele razy trzeba uzyskać dane między 2 datami do raportowania i analizy. Pobieranie rekordów między 2 datami w MySQL jest dość łatwe, mimo że nie ma do tego żadnej wbudowanej funkcji. Oto SQL do wybierania rekordów między 2 datami w MySQL, PostgreSQL i SQL Server.
Jak uzyskać rekordy między 2 datami w MySQL
Oto SQL, aby uzyskać rekordy między 2 datami w MySQL.
Załóżmy, że masz następującą tabelę sprzedaż(data_zamówienia, sprzedaż)
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 | +------------+------+
Przeczytaj bonus:Jak zdobyć rekordy z ostatnich 24 godzin
Jak uzyskać wiersze między 2 datami w MySQL
Oto zapytanie SQL, aby uzyskać rekordy między 2 datami w MySQL. Istnieją 2 sposoby na uzyskanie wierszy między 2 datami – za pomocą operatora matematycznego i za pomocą funkcji BETWEEN. Przyjrzymy się obu tym metodom.
Przeczytaj dodatkowe: Jak uzyskać rekordy z ostatnich 15 dni w MySQL
Korzystanie z operatorów matematycznych
Załóżmy, że chcesz uzyskać rekordy, w których data_zamówienia jest między 2 datami 2020-06-02 i 2020-06-06. Oto kod SQL służący do pobierania danych między 2 datami przy użyciu operatorów matematycznych.
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 | +------------+------+
W powyższym zapytaniu wybieramy rekordy, w których data_zamówienia przypada w dniu 02-06-2020 lub później oraz w dniu 06-06-2020 lub wcześniej. Możesz także użyć innych operatorów matematycznych, takich jak>,<,=i <> z datami. Możesz także użyć tego zapytania SQL, aby wybrać rekordy między 2 datami w PostgreSQL, SQL Server i Oracle.
Przeczytaj bonus:Jak zdobyć pierwszy rekord w każdej grupie w MySQL
Jeśli chcesz wybrać rekordy od określonej daty do bieżącej daty, możesz skorzystać z funkcji systemowych, takich jak aktualna_data lub teraz() w zapytaniu.
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 | +------------+------+
Korzystanie z operatora BETWEEN
Możesz także wybrać dane między 2 datami za pomocą operatora BETWEEN
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 | +------------+------+
Podczas wybierania rekordów operator BETWEEN uwzględni rekordy między tymi 2 datami, o których wspominasz, a także rekordy z 2 dat.
Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!