sql >> Databáze >  >> RDS >> Mysql

Jak získat záznamy mezi 2 daty v MySQL

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!

  1. Jak přetypuji řetězec na celé číslo a budu mít 0 v případě chyby při přetypování s PostgreSQL?

  2. Zabezpečení instalace MySQL

  3. 7 bezplatných nástrojů pro vytváření diagramů databází pro zaneprázdněné datové lidi

  4. Jak ladit postgresql uložené procedury?