2012-01-20 34 views
25

Tôi đang cố gắng chọn 6 tháng cuối cùng của các mục trong bảng, tôi có một cột được gọi là datetime và đây là định dạng mysql datetime.Cách chọn 6 tháng cuối cùng từ bảng tin bằng cách sử dụng MySQL

Tôi đã thấy nhiều cách sử dụng khoảng thời gian và phương pháp khác - tôi nên sử dụng phương pháp nào? Cảm ơn

+3

nếu lĩnh vực này thực sự gọi là datetime bạn sẽ cần phải sử dụng 'để bao quanh nó. datetime là một từ dành riêng. Phản ứng của Pablo sẽ làm việc xcept nơi anh ta có 'your_dt_field' bạn có thể cần phải đặt' datetime' với ký tự thoát đúng '. – xQbert

Trả lời

79

Sử dụng DATE_SUB

.... where yourdate_column > DATE_SUB(now(), INTERVAL 6 MONTH) 
+0

DATE_SUB() chức năng trừ khoảng thời gian từ ngày nhất định. Trong trường hợp này là "now() - 6 months". – prageeth

+0

Bên trong hàm 'DATE_SUB()', tôi có thể sử dụng 'MAX ()' thay vì 'now()' ??? Bởi vì tôi đang đối mặt với một tình huống tương tự và tôi phải kiểm tra dữ liệu 6 tháng cuối cùng từ ngày cuối cùng có mặt trong cột ngày thay vì ngày hôm nay. – LearneR

11

Hãy thử điều này:

select * 
    from table 
where your_dt_field >= date_sub(now(), interval 6 month); 

Query lần đọc: cho tôi tất cả các mục trong table nơi lĩnh vực tương ứng với Ngày nhập mới hơn 6 tháng.

+0

your_dt_field định dạng của nó là gì? cũng làm thế nào có thể sử dụng có hệ thống hiện tại ngày –

1

Tôi cố gắng @ user319198 câu trả lời để hiển thị (tổng) trước 6 tháng bán hàng, nó làm việc nhưng tôi phải đối mặt với một vấn đề trong tháng lâu đời nhất, tôi không nhận được số lượng bán hàng của cả tháng. Kết quả bắt đầu từ ngày hiện tại tương đương của tháng đó.

Chỉ cần tôi muốn chia sẻ giải pháp của tôi nếu có ai quan tâm: -

yourdate_column > DATE_SUB(now(), INTERVAL 7 MONTH) 
limit 6 

Ngoài ra nó sẽ là tuyệt vời nếu có ai có giải pháp tốt hơn cho trường hợp của tôi J.

Các vấn đề liên quan