Mnohokrát potřebujete získat data mezi 2 daty pro reportování a analýzu. Je docela snadné získat záznamy mezi 2 daty v MySQL, i když pro to není žádná vestavěná funkce. Zde je SQL pro výběr záznamů mezi 2 daty v MySQL, PostgreSQL a SQL Server.
Jak získat záznamy mezi 2 daty v MySQL
Zde je SQL pro získání záznamů mezi 2 daty v MySQL.
Řekněme, že máte následující tabulku prodej (datum_objednávky, prodej)
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 |
+------------+------+
Bonusové čtení:Jak získat záznamy za posledních 24 hodin
Jak získat řádky mezi 2 daty v MySQL
Zde je dotaz SQL pro získání záznamů mezi 2 daty v MySQL. Existují 2 způsoby, jak získat řádky mezi 2 daty – pomocí matematického operátoru a pomocí funkce BETWEEN. Podíváme se na obě tyto metody.
Bonusové čtení: Jak získat záznamy za posledních 15 dní v MySQL
Použití matematických operátorů
Řekněme, že chcete získat záznamy s hodnotou order_date je mezi 2 daty 2020-06-02 a 2020-06-06. Zde je SQL pro získání dat mezi 2 daty pomocí matematických operátorů.
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 |
+------------+------+
Ve výše uvedeném dotazu vybíráme záznamy, kde datum_objednávky je 2020-06-02 nebo později a 2020-06-06 nebo dříve. Můžete také použít jiné matematické operátory jako>,<,=a <> s daty. Můžete také tento SQL dotaz vybrat záznamy mezi 2 daty v PostgreSQL, SQL Server a Oracle.
Bonusové čtení:Jak získat první záznam v každé skupině v MySQL
Pokud chcete vybrat záznamy od určitého data do aktuálního data, můžete systémové funkce jako aktuální_datum nebo nyní() ve vašem dotazu.
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 |
+------------+------+
Použití operátoru BETWEEN
Můžete také vybrat data mezi 2 daty pomocí operátoru 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 |
+------------+------+
Při výběru záznamů operátor BETWEEN zahrne záznamy mezi těmito 2 daty, které uvádíte, a také záznamy ze 2 dat.
Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!