Đôi khi bạn có thể cần nhận các bản ghi 7 ngày qua hoặc lấy các hàng từ 7 ngày qua trong MySQL. Bạn có thể dễ dàng nhận được các bản ghi từ 7 ngày qua trong MySQL, ngay cả khi không có chức năng nào cho nó. Đây là truy vấn SQL để chọn các bản ghi trong 7 ngày qua.
Cách lấy bản ghi từ 7 ngày qua trong MySQL
Đây là SQL để lấy bản ghi từ 7 ngày qua trong MySQL. 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-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), ('2020-06-11',210); mysql> select * from sales; +------------+------+ | order_date | sale | +------------+------+ | 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 | | 2020-06-11 | 210 | +------------+------+
Phần thưởng đã đọc:Cách nhận hồ sơ từ 30 ngày qua
Cách nhận hồ sơ từ 7 ngày qua
Đây là truy vấn SQL để lấy bản ghi từ 7 ngày qua trong MySQL.
mysql> select * from sales where order_date > now() - INTERVAL 7 day; +------------+------+ | order_date | sale | +------------+------+ | 2020-06-05 | 200 | | 2020-06-06 | 260 | | 2020-06-07 | 270 | | 2020-06-08 | 240 | | 2020-06-09 | 290 | | 2020-06-10 | 230 | | 2020-06-11 | 210 | +------------+------+
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 7 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 một ngày trong 7 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 7 day;
Phần thưởng đọc:Cách nhận bản ghi giữa 2 ngày trong MySQL
Cách nhận dữ liệu 1 tuần qua
Đây là cách để có được bản ghi 1 tuần qua trong MySQL
mysql> select * from sales where order_date > now() - interval 1 week; +------------+------+ | order_date | sale | +------------+------+ | 2020-06-05 | 200 | | 2020-06-06 | 260 | | 2020-06-07 | 270 | | 2020-06-08 | 240 | | 2020-06-09 | 290 | | 2020-06-10 | 230 | | 2020-06-11 | 210 | +------------+------+
Phần thưởng đã đọc:Cách nhận bản ghi từ 24 giờ qua 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 tuần trước. Chúng tôi sử dụng đối số "1 tuần" cho mệnh đề INTERVAL, thay vì sử dụng "7 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!