Tạo bảng nhân viên
mysql> CREATE TABLE DemoTable1413 (
-> EmployeeName VARCHAR(20),
-> EmployeeJoiningDate DATETIME
-> );
INSERT INTO DemoTable1413 VALUES
('Chris','2018-09-28 11:10:50'),('David','2019-09-28 11:10:50'),
('Mike','2019-09-29 12:40:00'),('Carol','2019-09-28 12:06:10');
Dữ liệu
mysql> SELECT * FROM DemoTable1413;
+--------------+---------------------+
| EmployeeName | EmployeeJoiningDate |
+--------------+---------------------+
| Chris | 2018-09-28 11:10:50 |
| David | 2019-09-28 11:10:50 |
| Mike | 2019-09-29 12:40:00 |
| Carol | 2019-09-28 12:06:10 |
+--------------+---------------------+
Truy vấn: BETWEEN ngày bắt đầu và kết thúc ngày đó (23:59:59)
mysql> SELECT * FROM DemoTable1413
-> WHERE EmployeeJoiningDate BETWEEN '2019-09-28' AND '2019-09-28 23:59:59'
-> LIMIT 1;
Kết quả: David (hàng đầu tiên khớp)
+--------------+---------------------+
| EmployeeName | EmployeeJoiningDate |
+--------------+---------------------+
| David | 2019-09-28 11:10:50 |
+--------------+---------------------+
Tối ưu: BETWEEN cho phép index range scan. Tránh dùng hàm trên cột (ví dụ DATE(EmployeeJoiningDate) = '2019-09-28') vì làm index không dùng được. LIMIT 1 dừng sớm khi tìm thấy.