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

Truy vấn MySQL chọn bản ghi theo ngày và giờ cụ thể


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 AdmissionDate có index để truy vấn nhanh.
  • BETWEEN bao 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.