2016-03-28 9 views
-2

私はこのコラム(日時型)このようなコラムやグループそれから細かく/時間ごとのデータを取得する方法細かく/時報データPHPやSQL

Begin time 
=================== 
2015-12-04 00:00:06 
2015-12-04 00:00:09 
2015-12-04 00:00:10 
2015-12-04 00:00:13 
2015-12-04 00:00:18 
2015-12-04 00:00:22 
2015-12-04 00:00:33 
2015-12-04 00:00:47 
2015-12-04 00:01:00 
2015-12-05 00:01:00 
2015-12-05 00:01:07 
2015-12-06 00:01:09 
2015-12-06 00:01:11 
2015-12-06 00:01:32 
2015-12-06 00:01:34 
2015-12-07 00:02:00 
2015-12-07 00:02:59 

あります

Time     | Count 
00:00:00 - 00:00:59 | 8 
00:01:00 - 00:01:59 | 7 
00:02:00 - 00:02:59 | 2 
00:03:00 - 00:03:59 | 0 
... 
23:59:00 - 23:59:59 | 0 

を私は考えますそれはGrouping into interval of 5 minutes within a time rangeとdifferrentです。私はそれぞれの日付からすべてのデータを取得し、それを1列に集計する必要があるからです。例えば、私のコラムでは、2件の類似のデータがこのデータから

Begin time 
================ 
2015-12-05 00:01:00 
2015-12-06 00:01:09 

異なる日付で ありますが、私のようなデータ出力が必要です。

Time     | Count 
00:00:00 - 00:00:59 | 0 
00:01:00 - 00:01:59 | 2 
00:02:00 - 00:02:59 | 0 
00:03:00 - 00:03:59 | 0 
... 
23:59:00 - 23:59:59 | 0 

をすべてのあなたの助けの野郎のためにありがとうございました!

+0

変更これらのすべての '-'ので、あなたが変換されずに、その列でネイティブのMySQL日付関数を使用することができます'へ.'。 'group by date_format(time、 '%H')'を使用して時間単位でグループ化し、 'order by date_format(time、 '%i');を使って分単位で並べ替えることができます。 – Ohgodwhy

+0

[Grouping時間範囲内で5分の間隔](http://stackoverflow.com/questions/4342370/grouping-into-interval-of-5-minutes-within-a-time-range) – Strawberry

答えて

0

あなたがDATE_FORMATGROUP BYはそれを取得するために使用することができます。

SELECT 
    DATE_FROMAT(col_date, '%H:%m:00 - %H:%m:59') AS `Time`, 
    COUNT(*) AS Count 
FROM .. 
GROUP BY `Time` 
+0

私はまだ取得できませんすべての日付の要約ですが、ありがとうbtw、ありがとうございます – leviar

+1

すべての日付が必要な場合は、行がなくても、すべての分を最初に生成する必要があります。 –

+0

私は実際にいくつかの関数を使ってすべての分を生成していますが、いくつかの人々はhttp://stackoverflow.com/questions/4342370/grouping-into-interval-of-5分内の時間:3 – leviar

関連する問題