2009-10-27 33 views
5

Tôi có một bảng chứa các bản ghi xem/bấm. Thời gian được lưu trữ trong một dấu thời gian unix và tôi cần để có thể kéo tất cả chúng trong tháng/ngày cụ thể (dựa trên dấu thời gian), nhưng quan trọng hơn và phần tôi không biết cách làm là nhóm chúng theo giờ. Tôi cần để có thể làm điều này trong một truy vấn duy nhất thay vì lặp qua từng giờ.Chọn và nhóm các hàng tóm tắt theo giờ

Cơ sở dữ liệu là MySQL, ngôn ngữ là PHP.

Trả lời

5
select hour(somedate), count(*) from yourtable group by hour(somedate) 

Nếu bạn cần cả ba:

select month(somedate), day(somedate), hour(somedate), count(*) from yourtable group by month(somedate), day(somedate), hour(somedate) 
+0

Khi tôi chạy truy vấn sau đây: SELECT *, GIỜ (TIMESTAMP) AS GIỜ TỪ ad_view LIMIT 0, 30 Nó trả về 838 như giờ, nơi nó phải là số giờ trong ngày hiện tại. – Webnet

+0

Xin lỗi, số giờ vào ngày hiện tại (0-24) là dấu thời gian. – Webnet

+0

bạn có chắc đó thực sự là dấu thời gian không? nó là một số nguyên dấu thời gian được lưu trữ trong một cột int hay cái gì đó? –

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