Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhóm dấu thời gian trong MySQL với PHP

Peter

SELECT COUNT(*), HOUR(timecode)
FROM timecodeTable
GROUP BY HOUR(timecode);

Tập hợp kết quả của bạn, với dữ liệu ở trên, sẽ trông giống như sau:

+----------+----------------+
| COUNT(*) | HOUR(timecode) |
+----------+----------------+
|       10 |             18 | 
+----------+----------------+

Bạn có thể tìm thấy nhiều chức năng liên quan khác tại đây .

Chỉnh sửa

Sau khi thực hiện một số thử nghiệm của riêng tôi dựa trên kết quả nhận xét của bạn, tôi xác định rằng cơ sở dữ liệu của bạn đang ở trạng thái thất bại nghiêm trọng . :) Bạn đang sử dụng INT làm TIMESTAMP. Đây không bao giờ là một ý tưởng hay. Không có lý do chính đáng nào để sử dụng INT thay cho TIMESTAMP / DATETIME.

Điều đó nói rằng, bạn phải sửa đổi ví dụ trên của tôi như sau:

SELECT COUNT(*), HOUR(FROM_UNIXTIME(timecode))
FROM timecodeTable
GROUP BY HOUR(FROM_UNIXTIME(timecode));

Chỉnh sửa 2

Bạn có thể sử dụng các mệnh đề GROUP BY bổ sung để đạt được điều này:

SELECT 
  COUNT(*),
  YEAR(timecode),
  DAYOFYEAR(timecode),
  HOUR(timecode)
FROM timecodeTable
GROUP BY YEAR(timecode), DAYOFYEAR(timecode), HOUR(timecode);

Lưu ý, tôi đã bỏ qua FROM_UNIXTIME () cho ngắn gọn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi tự động MySQL thành chữ thường

  2. Không thể tải lớp trình điều khiển:com.mysql.jdbc.Driver Spring Boot

  3. Không thể thực thi các truy vấn trong khi các truy vấn không có bộ đệm khác đang hoạt động lỗi trong vòng lặp

  4. Trong mysql thì tham gia bên trong nào sql là hiệu quả nhất và tốt nhất?

  5. Cách trả về bảng từ hàm MySQL