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

Truy vấn MySQL lọc bản ghi theo tháng và năm cụ thể

Sử dụng hàm MONTH() và YEAR() để trích xuất tháng, năm từ cột DATE/DATETIME để lọc dữ liệu.

Ví dụ minh họa

Tạo bảng và chèn dữ liệu:

mysql> CREATE TABLE DemoTable1846 (PurchaseDate DATE);
mysql> INSERT INTO DemoTable1846 VALUES('2019-01-10'),('2019-12-24'),('2018-09-21'),('2017-10-26');

Lọc tháng 12 năm 2019:

mysql> SELECT * FROM DemoTable1846
    WHERE MONTH(PurchaseDate)=12 AND YEAR(PurchaseDate)=2019;

Kết quả:

+--------------+
| PurchaseDate |
+--------------+
| 2019-12-24   |
+--------------+

Mẹo tối ưu: Tránh dùng hàm trên cột trong WHERE nếu bảng lớn (không dùng index). Hãy dùng điều kiện phạm vi:

WHERE PurchaseDate >= '2019-12-01' AND PurchaseDate < '2020-01-01'