Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите записи между 2 дати в MySQL

Много пъти трябва да получите данни между 2 дати за отчитане и анализ. Доста лесно е да получите записи между 2 дати в MySQL, въпреки че няма вградена функция за това. Ето SQL за избор на записи между 2 дати в MySQL, PostgreSQL и SQL Server.

Как да получите записи между 2 дати в MySQL

Ето SQL за получаване на записи между 2 дати в MySQL.

Да приемем, че имате следната таблица 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 |
+------------+------+

Бонус четене:Как да получите записи от последните 24 часа

Как да получите редове между 2 дати в MySQL

Ето SQL заявката за получаване на записи между 2 дати в MySQL. Има 2 начина за получаване на редове между 2 дати – с помощта на математически оператор и с помощта на функция BETWEEN. Ще разгледаме и двата метода.

Бонус четене:  Как да получите записи за последните 15 дни в MySQL

Използване на математически оператори

Да приемем, че искате да получите записи, където order_date е между 2 дати 2020-06-02 и 2020-06-06. Ето SQL за получаване на данни между 2 дати с помощта на математически оператори.

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

В горната заявка избираме записи, където order_date е на или след 2020-06-02 и на или преди 2020-06-06. Можете също да използвате други математически оператори като>,<,=и <> с дати. Можете също така тази SQL заявка да изберете записи между 2 дати в PostgreSQL, SQL Server и Oracle.

Бонус четене:Как да получите първи запис във всяка група в MySQL

Ако искате да изберете записи от конкретна дата до текуща дата, тогава можете да използвате системни функции като current_date или сега() във вашата заявка.

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

Използване на оператор BETWEEN

Можете също да изберете данни между 2 дати, като използвате оператор 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 |
+------------+------+

Докато избира записи, операторът BETWEEN ще включва записи между тези 2 дати, които споменавате, както и записите на 2-те дати.

Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Топ 5 инструмента за наблюдение на MySQL

  2. MySQL максимално използване на паметта

  3. Присъединяване към MySQL срещу ИЗПОЛЗВАНЕ?

  4. Как работи функцията LOCATE() в MySQL

  5. SQL SERVER – SQL_NO_CACHE и ОПЦИЯ (ПРЕКОМПИЛИРАНЕ)