Sử dụng YEAR() để trích xuất năm từ cột DATE, sau đó lọc các hàng có năm bắt đầu hoặc kết thúc rơi vào năm mục tiêu.
Ví dụ minh họa
Tạo bảng với cột StartDate, EndDate:
mysql> CREATE TABLE DemoTable1843 (StartDate DATE, EndDate DATE);
mysql> INSERT INTO DemoTable1843 VALUES('2019-01-21','2019-10-12'),('2018-10-12','2018-12-31'),('2016-04-01','2017-05-02');
Lọc các hàng có năm 2018 ở StartDate HOẶC EndDate:
mysql> SELECT * FROM DemoTable1843
WHERE YEAR(StartDate)='2018' OR YEAR(EndDate)='2018';
Kết quả:
+------------+------------+ | StartDate | EndDate | +------------+------------+ | 2018-10-12 | 2018-12-31 | +------------+------------+
Mở rộng: Để lấy ngày đầu năm (01-01) và cuối năm (12-31) của một năm cụ thể, dùng MAKEDATE(year,1) và LAST_DAY(MAKEDATE(year,12)).