Nhiều khi bạn cần lấy dữ liệu giữa 2 ngày để báo cáo và phân tích. Khá dễ dàng để lấy các bản ghi giữa 2 ngày trong MySQL mặc dù không có chức năng tích hợp sẵn cho nó. Đây là SQL để chọn bản ghi giữa 2 ngày trong MySQL, PostgreSQL &SQL Server.
Cách lấy bản ghi giữa 2 ngày trong MySQL
Đây là SQL để lấy bản ghi giữa 2 ngày trong MySQL.
Giả sử bạn có bảng sau doanh số bán hàng (order_date, sale)
mysql> create table sales(order_date date,sale int); mysql> insert into sales(order_date,sale) values('2020-06-01',250), ('2020-06-0',350), ('2020-06-02',400), ('2020-06-03',250), ('2020-06-04',200), ('2020-06-05',180), ('2020-06-06',150), ('2020-06-07',650), ('2020-06-08',500), ('2020-06-09',150); mysql> select * from sales; +------------+------+ | order_date | sale | +------------+------+ | 2020-06-01 | 250 | | 2020-06-00 | 350 | | 2020-06-02 | 400 | | 2020-06-03 | 250 | | 2020-06-04 | 200 | | 2020-06-05 | 180 | | 2020-06-06 | 150 | | 2020-06-07 | 650 | | 2020-06-08 | 500 | | 2020-06-09 | 150 | +------------+------+
Phần thưởng đã đọc:Cách nhận hồ sơ từ 24 giờ qua
Cách nhận hàng giữa 2 ngày trong MySQL
Đây là truy vấn SQL để lấy bản ghi giữa 2 ngày trong MySQL. Có 2 cách để lấy các hàng giữa 2 ngày - sử dụng toán tử toán học và sử dụng hàm BETWEEN. Chúng ta sẽ xem xét cả hai phương pháp này.
Phần thưởng đã đọc:Cách nhận bản ghi 15 ngày qua trong MySQL
Sử dụng toán tử toán học
Giả sử bạn muốn nhận hồ sơ ở order_date nằm trong khoảng 2 ngày 2020-06-02 và 2020-06-06. Đây là SQL để lấy dữ liệu giữa 2 ngày bằng các toán tử toán học.
mysql> select * from sales where order_date>='2020-06-02' and order_date<='2020-06-06'; +------------+------+ | order_date | sale | +------------+------+ | 2020-06-02 | 400 | | 2020-06-03 | 250 | | 2020-06-04 | 200 | | 2020-06-05 | 180 | | 2020-06-06 | 150 | +------------+------+
Trong truy vấn trên, chúng tôi chọn các bản ghi có order_date vào hoặc sau 2020-06-02 và vào hoặc trước 2020-06-06. Bạn cũng có thể sử dụng các toán tử toán học khác như>, <, =và <> với ngày tháng. Bạn cũng có thể truy vấn SQL này để chọn bản ghi giữa 2 ngày trong PostgreSQL, SQL Server và Oracle.
Phần thưởng Đọc:Cách Nhận Bản ghi Đầu tiên trong Mỗi Nhóm trong MySQL
Nếu bạn muốn chọn các bản ghi từ một ngày cụ thể cho đến ngày hiện tại, thì bạn có thể thực hiện các chức năng hệ thống như current_date hoặc bây giờ () trong truy vấn của bạn.
mysql> select * from sales where order_date>'2020-06-02' and order_date<current_date; +------------+------+ | order_date | sale | +------------+------+ | 2020-06-03 | 250 | | 2020-06-04 | 200 | | 2020-06-05 | 180 | | 2020-06-06 | 150 | | 2020-06-07 | 650 | | 2020-06-08 | 500 | +------------+------+
Sử dụng toán tử GIỮA
Bạn cũng có thể chọn dữ liệu giữa 2 ngày bằng toán tử GIỮA
mysql> select * from sales where order_date BETWEEN '2020-06-02' and '2020-06-06'; +------------+------+ | order_date | sale | +------------+------+ | 2020-06-02 | 400 | | 2020-06-03 | 250 | | 2020-06-04 | 200 | | 2020-06-05 | 180 | | 2020-06-06 | 150 | +------------+------+
Trong khi chọn bản ghi, toán tử GIỮA sẽ bao gồm các bản ghi giữa 2 ngày mà bạn đề cập, cũng như các bản ghi vào 2 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!