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!