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

Cách truy vấn dữ liệu giữa hai ngày trong MySQL

Bạn có thể truy vấn dữ liệu giữa hai ngày bằng cách sử dụng toán tử BETWEEN. Cú pháp như sau:

SELECT * FROM ten_bang WHERE ten_cot BETWEEN 'ngay_bat_dau' AND CURDATE();

Hàm CURDATE() hoặc NOW() đều hoạt động. Để hiểu rõ hơn, hãy tạo một bảng ví dụ:

mysql> CREATE TABLE DemoKhoangNgay (
    -> NgayBatDau DATETIME
    -> );

Chèn một số bản ghi vào bảng:

mysql> INSERT INTO DemoKhoangNgay VALUES (DATE_ADD(NOW(), INTERVAL -1 YEAR));
mysql> INSERT INTO DemoKhoangNgay VALUES (DATE_ADD(NOW(), INTERVAL -2 YEAR));
mysql> INSERT INTO DemoKhoangNgay VALUES (DATE_ADD(NOW(), INTERVAL -3 YEAR));
mysql> INSERT INTO DemoKhoangNgay VALUES (DATE_ADD(NOW(), INTERVAL 1 YEAR));
mysql> INSERT INTO DemoKhoangNgay VALUES (DATE_ADD(NOW(), INTERVAL 2 YEAR));
mysql> INSERT INTO DemoKhoangNgay VALUES (DATE_ADD(NOW(), INTERVAL 3 YEAR));

Hiển thị tất cả bản ghi:

mysql> SELECT * FROM DemoKhoangNgay;

Kết quả:

+---------------------+
| NgayBatDau          |
+---------------------+
| 2017-12-08 11:45:47 |
| 2016-12-08 11:45:56 |
| 2015-12-08 11:46:01 |
| 2019-12-08 11:46:05 |
| 2020-12-08 11:46:11 |
| 2021-12-08 11:46:15 |
+---------------------+

Thực hiện truy vấn giữa hai ngày:

mysql> SELECT * FROM DemoKhoangNgay WHERE NgayBatDau BETWEEN '2014-08-12' AND CURDATE();

Kết quả (chỉ các bản ghi từ 2015-2017):

+---------------------+
| NgayBatDau          |
+---------------------+
| 2017-12-08 11:45:47 |
| 2016-12-08 11:45:56 |
| 2015-12-08 11:46:01 |
+---------------------+

Sử dụng ORDER BY để sắp xếp kết quả:

mysql> SELECT * FROM DemoKhoangNgay WHERE NgayBatDau BETWEEN '2014-08-12' AND CURDATE() ORDER BY NgayBatDau;

Kết quả được sắp xếp theo thứ tự thời gian:

+---------------------+
| NgayBatDau          |
+---------------------+
| 2015-12-08 11:46:01 |
| 2016-12-08 11:45:56 |
| 2017-12-08 11:45:47 |
+---------------------+