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

Truy vấn MySQL chọn dữ liệu trong khoảng giữa hai ngày (BETWEEN)

Cú pháp

SELECT * FROM yourTableName
WHERE yourColumnName BETWEEN yourDateValue1 AND yourDateValue2;

Tạo bảng nhân viên

mysql> CREATE TABLE DemoTable1422 (
    -> EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> EmployeeName VARCHAR(20),
    -> EmployeeJoiningDate DATE
    -> );
INSERT INTO DemoTable1422(EmployeeName, EmployeeJoiningDate) VALUES
('John','2017-09-28'),('Chris','2019-09-29'),('Bob','2018-01-31'),('Sam','2018-12-21'),('Mike','2019-11-10');

Dữ liệu

mysql> SELECT * FROM DemoTable1422;
+------------+--------------+---------------------+
| EmployeeId | EmployeeName | EmployeeJoiningDate |
+------------+--------------+---------------------+
| 1          | John         | 2017-09-28          |
| 2          | Chris        | 2019-09-29          |
| 3          | Bob          | 2018-01-31          |
| 4          | Sam          | 2018-12-21          |
| 5          | Mike         | 2019-11-10          |
+------------+--------------+---------------------+

Truy vấn: BETWEEN '2018-09-29' AND '2019-09-29'

mysql> SELECT * FROM DemoTable1422
    -> WHERE EmployeeJoiningDate BETWEEN '2018-09-29' AND '2019-09-29';

Kết quả: 2 hàng (Chris, Sam)

+------------+--------------+---------------------+
| EmployeeId | EmployeeName | EmployeeJoiningDate |
+------------+--------------+---------------------+
| 2          | Chris        | 2019-09-29          |
| 4          | Sam          | 2018-12-21          |
+------------+--------------+---------------------+

Lưu ý: BETWEEN bao gồm cả hai giá trị đầu và cuối. Với DATETIME, ngày kết thúc '2019-09-29' nghĩa là '2019-09-29 00:00:00', nên các giờ trong ngày đó không khớp. Khắc phục: dùng BETWEEN '2018-09-29' AND '2019-09-29 23:59:59' hoặc WHERE date_col >= '2018-09-29' AND date_col < '2019-09-30'.