Sử dụng DATE_SUB(NOW(), INTERVAL 6 MONTH) để tính mốc thời gian 6 tháng trước, so sánh với cột datetime.
Cú pháp:
SELECT * FROM ten_bang WHERE cot_datetime >= DATE_SUB(NOW(), INTERVAL 6 MONTH);
Ví dụ bảng Newstable:
CREATE TABLE Newstable (NewsId INT, NewsDatetime DATETIME); INSERT INTO Newstable VALUES (101,'2018-02-10'), (102,'2018-12-10'), (103,'2018-03-14'), (104,'2018-12-12'), (105,'2018-04-21'), (106,'2018-06-30');
Giả sử thời điểm hiện tại là cuối năm 2018, truy vấn:
SELECT * FROM Newstable WHERE NewsDatetime > DATE_SUB(NOW(), INTERVAL 6 MONTH);
Kết quả (3 bản ghi trong 6 tháng gần nhất)
+--------+---------------------+ | NewsId | NewsDatetime | +--------+---------------------+ | 102 | 2018-12-10 00:00:00 | | 104 | 2018-12-12 00:00:00 | | 106 | 2018-06-30 00:00:00 | +--------+---------------------+
Mẹo: Thay NOW() bằng CURDATE() nếu cột chỉ lưu DATE. Dùng INTERVAL 3 MONTH, INTERVAL 1 YEAR... tùy nhu cầu.