Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Cách nhận hồ sơ từ 30 ngày qua

Đôi khi bạn có thể cần lấy hàng từ 30 ngày qua hoặc lấy dữ liệu 1 tháng qua trong MySQL. Có thể dễ dàng lấy các bản ghi từ 30 ngày qua trong MySQL mặc dù không có chức năng tích hợp sẵn cho nó. Đây là truy vấn SQL để chọn các bản ghi trong 30 ngày qua.

Cách lấy bản ghi từ 30 ngày qua trong MySQL

Đây là SQL để lấy các bản ghi từ 30 ngày qua. Giả sử bạn có bảng sau doanh số bán hàng (order_date, sale) chứa dữ liệu bán hàng hàng ngà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 |
+------------+------+

Phần thưởng đọc:Cách nhận bản ghi giữa 2 ngày trong MySQL

Cách nhận hồ sơ từ 30 ngày qua

Đây là truy vấn SQL để lấy các bản ghi từ 30 ngày qua trong 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 |
+------------+------+

Trong truy vấn trên, chúng tôi chọn các bản ghi đó tại order_date giảm sau khoảng thời gian 30 ngày qua. Chúng tôi sử dụng chức năng hệ thống now () để nhận giá trị ngày giờ mới nhất và mệnh đề INTERVAL để tính ngày trong 30 ngày trước.

Bạn cũng có thể sử dụng current_date thay vì bây giờ ()

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

Phần thưởng đã đọc:Cách nhận bản ghi từ 24 giờ qua trong MySQL

Cách nhận dữ liệu 1 tháng trước

Đây là truy vấn SQL để lấy các bản ghi 1 tháng qua trong 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 |
+------------+------+

Phần thưởng đã đọc:Cách nhận bản ghi của tháng hiện tại trong MySQL

Trong truy vấn trên, chúng tôi chọn các hàng có order_date giảm sau khoảng thời gian 1 tháng trước. Chúng tôi sử dụng đối số "1 tháng" cho mệnh đề INTERVAL, thay vì sử dụng "30 ngày"

Ubiq giúp dễ dàng trực quan hóa dữ liệu trong vài phút và theo dõi trong trang tổng quan thời gian thực. Thử nó ngay hôm nay!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để Thực thi Thủ tục Đã Lưu trữ trong Nhà phát triển SQL?

  2. Người thiết kế cơ sở dữ liệu làm gì?

  3. Ngăn chặn các cuộc tấn công SQL Injection với Python

  4. Kết nối cơ sở dữ liệu hoặc lỗi xác thực với loại có thể di chuyển

  5. Thiết kế cơ sở dữ liệu với Vertabelo