Sử dụng mệnh đề BETWEEN để lọc bản ghi trong khoảng ngày giờ xác định.
Cú pháp
SELECT * FROM table_name WHERE datetime_column BETWEEN 'start_datetime' AND 'end_datetime';
Ví dụ minh họa
mysql> CREATE TABLE AllRecordsFromadate ( Id INT, Name VARCHAR(100), Age INT, AdmissionDate DATETIME ); Query OK, 0 rows affected (0.53 sec) mysql> INSERT INTO AllRecordsFromadate VALUES (101, 'John', 23, '2018-10-13'), (102, 'Carol', 24, '2014-12-5 12:34:50'), (103, 'Mike', 25, '2014-12-5 12:30:40'), (104, 'Bob', 24, '2015-10-7 11:10:20'), (105, 'Sam', 25, '2011-6-26 10:10:20'); Query OK, 5 rows affected
Lọc bản ghi từ 2014-12-05 10:00:00 đến 2014-12-05 12:50:58:
mysql> SELECT * FROM AllRecordsFromadate WHERE AdmissionDate BETWEEN '2014-12-05 10:00:00' AND '2014-12-05 12:50:58';
Kết quả:
+------+-------+------+---------------------+ | Id | Name | Age | AdmissionDate | +------+-------+------+---------------------+ | 102 | Carol | 24 | 2014-12-05 12:34:50 | | 103 | Mike | 25 | 2014-12-05 12:30:40 | +------+-------+------+---------------------+
Lưu ý hiệu năng
- Đảm bảo cột
AdmissionDatecó index để truy vấn nhanh. BETWEENbao gồm cả hai giá trị đầu và cuối (inclusive).- Tránh dùng hàm trên cột (như
DATE(AdmissionDate)) trong WHERE nếu muốn dùng index.
Cách thay thế cho "ngày cụ thể" (chỉ ngày, bỏ qua giờ)
SELECT * FROM table_name WHERE DATE(datetime_column) = '2014-12-05';
Xem bài tiếp theo để biết chi tiết.