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

Lấy bản ghi 6 tháng gần nhất từ bảng tin tức (news) trong MySQL?

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.