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 đó.