Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Lấy bản ghi 3 ngày qua từ ngày hiện tại và tính tổng cột tương ứng trong MySQL

Yêu cầu

Tổng ProductAmount của các bản ghi có PurchaseDate trong 3 ngày gần nhất (so với NOW()).

1. Tạo bảng

mysql> create table DemoTable (
    ProductAmount int,
    PurchaseDate datetime
);
Query OK, 0 rows affected (0.94 sec)

2. Chèn dữ liệu (giả sử hôm nay 2019-09-15)

mysql> insert into DemoTable values(567,'2019-09-10');
mysql> insert into DemoTable values(1347,'2019-09-14');
mysql> insert into DemoTable values(2033,'2019-09-13');
mysql> insert into DemoTable values(1256,'2019-09-11');
mysql> insert into DemoTable values(1000,'2019-09-16');

3. Xem dữ liệu

mysql> select * from DemoTable;
+---------------+---------------------+
| ProductAmount | PurchaseDate        |
+---------------+---------------------+
| 567           | 2019-09-10 00:00:00 |
| 1347          | 2019-09-14 00:00:00 |
| 2033          | 2019-09-13 00:00:00 |
| 1256          | 2019-09-11 00:00:00 |
| 1000          | 2019-09-16 00:00:00 |
+---------------+---------------------+
5 rows in set (0.00 sec)

4. Truy vấn tổng 3 ngày gần nhất

mysql> select sum(ProductAmount) from DemoTable
    where PurchaseDate > NOW() - interval 3 day;

Kết quả (chỉ các ngày 13,14,15? nhưng dữ liệu chỉ có 13,14,11,10; 16 là tương lai):

+--------------------+
| sum(ProductAmount) |
+--------------------+
| 4380               |
+--------------------+
1 row in set (0.00 sec)

Giải thích: NOW() - INTERVAL 3 DAY trả về timestamp 3 ngày trước. Điều kiện > lấy các bản ghi sau thời điểm đó.