Để tìm các bản ghi có ngày hết hạn rơi trong khoảng 2 ngày tới kể từ hôm nay, bạn sử dụng toán tử BETWEEN kết hợp với hàm CURDATE().
Ví dụ minh họa
Tạo bảng:
mysql> create table DemoTable (
ExpiryDate date
);
Lưu ý: Giả sử ngày hiện tại là 2019-08-18.
Chèn dữ liệu:
mysql> insert into DemoTable values('2018-01-21');
mysql> insert into DemoTable values('2019-08-20');
mysql> insert into DemoTable values('2018-08-20');
mysql> insert into DemoTable values('2019-08-21');
Hiển thị dữ liệu:
mysql> select * from DemoTable;
Kết quả:
+------------+ | ExpiryDate | +------------+ | 2018-01-21 | | 2019-08-20 | | 2018-08-20 | | 2019-08-21 | +------------+
Truy vấn tìm ngày hết hạn trong 2 ngày tới
mysql> select * from DemoTable where ExpiryDate between curdate() AND curdate() + 2;
Kết quả (với CURDATE() = 2019-08-18):
+------------+ | ExpiryDate | +------------+ | 2019-08-20 | +------------+
Giải thích:
CURDATE(): Trả về ngày hiện tại (2019-08-18)CURDATE() + 2: Ngày sau 2 ngày (2019-08-20)BETWEEN ... AND ...: Lấy các ngày từ hôm nay đến 2019-08-20 (kể cả 2 đầu)
Chỉ có 2019-08-20 rơi trong khoảng này. Cách này thường dùng cho hệ thống nhắc nhở hết hạn thẻ, đăng ký, bảo hành, v.v.