MySQL Select tarih / saat gruplaşmalar saat gruplandırılmış

2 Cevap php

Ben böyle bir mysql tabloda tarih verilerin bir grup var:

2010-02-13 1:00:00, "soma data"
2010-02-13 1:25:00, "soma data"
2010-02-13 1:37:00, "soma data"
2010-02-13 2:12:00, "soma data"

Ben örneğin, saat göre gruplandırılmış veriyi gösteren bir rapor seçmek istiyorum:

On Feb 13, during the hour from 1:00 pm to 1:59 pm, there were 3 data points.
On Feb 13, during the hour from 2:00 pm to 2:59 pm, there was 1 data points.
...

Temelde ben günün her saatinde meydana gelen kayıtların kümülatif miktarını bildirmek istiyorum. Yani sonuçta bana 24 saatlik aralıklarla patlak 10 gün diyelim ki bir rapor verecek, bu yüzden herhangi bir gün herhangi bir saatte orada ne kadar veri görebilirsiniz.

TIA, size yardımcı olabilir umuyoruz!

2 Cevap

Sen aşağıdaki sorgu gibi GROUP BY tümcesi kullanmak isteyebilirsiniz:

SELECT 
    COUNT(*),
    YEAR(dateTimeField),
    MONTH(dateTimeField),
    DAY(dateTimeField),
    HOUR(dateTimeField)
FROM 
    yourTable
WHERE
    dateTimeField >= '2010-02-04 00:00:00' AND
    dateTimeField < '2010-02-14 00:00:00'
GROUP BY 
    YEAR(dateTimeField), 
    MONTH(dateTimeField),
    DAY(dateTimeField),
    HOUR(dateTimeField);

Ayrıca, tarih ve saat fonksiyonları hakkında daha fazla referans için MySQL belgelerine kontrol etmek isteyebilirsiniz:

SELECT HOUR(datetime), COUNT(*)
FROM table
GROUP BY HOUR(datetime);

O saatte saat ve olayların sayısı: İki alanları almak olacaktır.