Database
 sql >> Baza danych >  >> RDS >> Database

Jak uzyskać zapisy z ostatnich 30 dni?

Czasami może być konieczne pobranie wierszy z ostatnich 30 dni lub pobranie danych z ostatniego miesiąca w MySQL. Łatwo jest uzyskać rekordy z ostatnich 30 dni w MySQL, mimo że nie ma do tego wbudowanej funkcji. Oto zapytanie SQL służące do wybrania rekordów z ostatnich 30 dni.

Jak pobrać rekordy z ostatnich 30 dni w MySQL

Oto kod SQL służący do pobierania rekordów z ostatnich 30 dni. Załóżmy, że masz następującą tabelę sprzedaż(data_zamówienia, sprzedaż) który zawiera dzienne dane sprzedaży.

mysql> create table sales(order_date date,sale int);

mysql> insert into sales(order_date, sale)
     values('2020-05-04',230),
     ('2020-05-05',200),
     ('2020-05-06',210),
     ('2020-05-07',180),
     ('2020-05-08',220),
     ('2020-05-09',230),
     ('2020-05-10',220),
     ('2020-05-11',225),
     ('2020-05-12',200),
     ('2020-05-13',210),
     ('2020-05-14',190),
     ('2020-05-15',200),
     ('2020-05-16',220),
     ('2020-05-17',210),
     ('2020-05-18',190),
     ('2020-05-19',180),
     ('2020-05-20',250),
     ('2020-05-21',240),
     ('2020-05-22',245),
     ('2020-05-23',230),
     ('2020-05-24',220),
     ('2020-05-25',210),
     ('2020-05-26',130),
     ('2020-05-27',200),
     ('2020-05-28',210),
     ('2020-05-29',221),
     ('2020-05-30',235),
     ('2020-05-31',233),
     ('2020-06-01',237),
     ('2020-06-02',230),
     ('2020-06-03',220),
     ('2020-06-04',210),
     ('2020-06-05',200),
     ('2020-06-06',260),
     ('2020-06-07',270),
     ('2020-06-08',240),
     ('2020-06-09',290),
     ('2020-06-10',230);

mysql> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-05-04 |  230 |
| 2020-05-05 |  200 |
| 2020-05-06 |  210 |
| 2020-05-07 |  180 |
| 2020-05-08 |  220 |
|        ... |  ... |
|        ... |  ... |
| 2020-06-06 |  260 |
| 2020-06-07 |  270 |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
+------------+------+

Przeczytaj bonus:Jak uzyskać rekordy między 2 datami w MySQL

Jak uzyskać zapisy z ostatnich 30 dni

Oto zapytanie SQL, aby pobrać rekordy z ostatnich 30 dni w MySQL.

mysql> select * from sales
     where order_date > now() - INTERVAL 30 day;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-05-12 |  200 |
| 2020-05-13 |  210 |
| 2020-05-14 |  190 |
|        ... |  ... | 
|        ... |  ... | 
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
+------------+------+

W powyższym zapytaniu wybieramy te rekordy, w których data_zamówienia upada po upływie ostatnich 30 dni. Używamy funkcji systemowej now() aby uzyskać najnowszą wartość daty i godziny oraz klauzulę INTERVAL, aby obliczyć datę sprzed 30 dni.

Możesz też użyć current_date zamiast now()

mysql> select * from sales
     where order_date > current_date - interval 30 day;

Przeczytaj bonus:Jak uzyskać rekordy z ostatnich 24 godzin w MySQL

Jak uzyskać dane z ostatniego miesiąca

Oto zapytanie SQL, aby uzyskać rekordy z ostatniego miesiąca w MySQL.

mysql> select * from sales
     where order_date > current_date - interval 1 month;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-05-11 |  225 |
| 2020-05-12 |  200 |
| 2020-05-13 |  210 |
|        ... |  ... |
|        ... |  ... |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
+------------+------+

Przeczytaj bonus:Jak uzyskać rekordy z bieżącego miesiąca w MySQL

W powyższym zapytaniu wybieramy wiersze, w których data_zamówienia spada po upływie 1 miesiąca. Używamy argumentu „1 miesiąc” dla klauzuli INTERVAL, zamiast „30 dni”

Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie SAS JMP z Salesforce.com

  2. Anonimizuj szczegóły swojego planu natywnie w Eksploratorze planów

  3. Przewodnik po wdrażaniu TimescaleDB za pomocą Docker

  4. Tworzenie klastra Docker Swarm w usłudze Azure Container Service

  5. Rozszerzenie zastosowań DBCC CLONEDATABASE