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

Cách nhận dữ liệu một tháng trước trong MySQL

Đôi khi bạn có thể cần tìm nạp bản ghi tháng trước hoặc lấy các hàng từ tháng trước. Đây là cách lấy dữ liệu một tháng qua trong MySQL.

Cách nhận dữ liệu một tháng trước trong MySQL

Dưới đây là các bước để nhận dữ liệu một tháng qua trong MySQL.

Giả sử bạn có bảng đơn hàng (id, order_date, số lượng) sau trong MySQL có chứa số lượng đơn đặt hàng hàng ngày.

mysql> create table orders(id int, order_date date, amount int);

mysql> insert into orders(id,order_date, amount)
     values(1,'2020-07-25',250),
     (2,'2020-07-26',350),
     (3,'2020-07-27',200),
     (4,'2020-07-28',150),
     (5,'2020-07-29',350),
     (6,'2020-07-30',300),
     (7,'2020-07-31',250),
     (8,'2020-08-01',550),
     (9,'2020-08-02',350),
     (10,'2020-08-03',250),
     (11,'2020-08-04',200);

mysql> select * from orders;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-07-25 |    250 |
|    2 | 2020-07-26 |    350 |
|    3 | 2020-07-27 |    200 |
|    4 | 2020-07-28 |    150 |
|    5 | 2020-07-29 |    350 |
|    6 | 2020-07-30 |    300 |
|    7 | 2020-07-31 |    250 |
|    8 | 2020-08-01 |    550 |
|    9 | 2020-08-02 |    350 |
|   10 | 2020-08-03 |    250 |
|   11 | 2020-08-04 |    200 |
+------+------------+--------+

Phần thưởng đọc:Cách sao chép bảng trong MySQL

Cách lấy bản ghi một tháng qua trong MySQL

Đây là truy vấn SQL để lấy bản ghi một tháng qua trong MySQL

mysql> select * from orders
     where month(order_date)=month(now())-1;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-07-25 |    250 |
|    2 | 2020-07-26 |    350 |
|    3 | 2020-07-27 |    200 |
|    4 | 2020-07-28 |    150 |
|    5 | 2020-07-29 |    350 |
|    6 | 2020-07-30 |    300 |
|    7 | 2020-07-31 |    250 |
+------+------------+--------+

Trong truy vấn trên, chúng tôi chỉ chọn những bản ghi có tháng nhỏ hơn một tháng so với tháng của ngày hiện tại. Chúng tôi có được số ngày trong tháng bằng cách sử dụng hàm MONTH (). Chúng tôi có được ngày hiện tại bằng cách sử dụng hàm NOW ().

Theo dữ liệu của chúng tôi, vì tháng hiện tại là tháng 8, nên chúng tôi nhận được các bản ghi cho tháng trước, tức là tháng 7.

Hy vọng rằng bây giờ bạn có thể dễ dàng nhận được dữ liệu của một tháng qua trong MySQL.

Phần thưởng Đọc:Cách thêm ràng buộc NOT NULL trong MySQL

Tương tự, nếu bạn muốn nhận các bản ghi trong vòng một tháng qua, tức là 30 ngày qua, thì đây là truy vấn SQL cho nó.

select * from orders
where order_date>now() - interval 1 month;

Trong truy vấn trên, chúng tôi chọn các hàng sau khoảng thời gian 1 tháng qua. Chúng tôi sử dụng mệnh đề INTERVAL và hàm NOW () để lấy ngày 1 tháng trước, kể từ ngày hiện tại.

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. Trình kích hoạt được lưu trữ của trình kích hoạt mysql đã được sử dụng bởi câu lệnh đã gọi trình kích hoạt được lưu trữ

  2. Hướng dẫn sử dụng MySQL:Câu lệnh MySQL IN (Nâng cao)

  3. Khi nào sử dụng MyISAM và InnoDB?

  4. Tại sao các hàng trả về bằng giải thích không bằng count ()?

  5. Cài đặt Apache, MySQL 8 hoặc MariaDB 10 và PHP 7 trên CentOS 7