2013-12-21 17 views
9

Wie kann ich die Anzahl der Zeilen pro Stunde in SQL Server mit voller Datum-Uhrzeit als Ergebnis zählen.Anzahl Zeilen pro Stunde in SQL Server mit vollem Datum-Uhrzeit-Wert als Ergebnis

habe ich versucht, das schon, aber es gibt nur die Stunden

SELECT DATEPART(HOUR,TimeStamp), Count(*) 
FROM [TEST].[dbo].[data] 
GROUP BY DATEPART(HOUR,TimeStamp) 
ORDER BY DATEPART(HOUR,TimeStamp) 

Jetzt ist das Ergebnis:

Hour Occurrence 
---- ---------- 
10  2157 
11  60740 
12  66189 
13  77096 
14  90039 

Aber ich brauche diese:

Timestamp    Occurrence 
-------------------  ---------- 
2013-12-21 10:00:00  2157 
2013-12-21 11:00:00  60740 
2013-12-21 12:00:00  66189 
2013-12-21 13:00:00  77096 
2013-12-21 14:00:00  90039 
2013-12-22 09:00:00  84838 
2013-12-22 10:00:00  64238 

Antwort

18

Sie tatsächlich müssen die TimeStamp auf die Stunde runden. In SQL Server, ist dies ein bisschen hässlich, aber einfach zu tun:

SELECT dateadd(hour, datediff(hour, 0, TimeStamp), 0) as TimeStampHour, Count(*) 
FROM [TEST].[dbo].[data] 
GROUP BY dateadd(hour, datediff(hour, 0, TimeStamp), 0) 
ORDER BY dateadd(hour, datediff(hour, 0, TimeStamp), 0); 
+0

Excellent. In der Tat ein bisschen hässlich (sicherlich im Vergleich zu MySQL) –

+3

Das ist wirklich nützlich. Gibt es trotzdem, dass die Abfrage Nullwerte für Stunden zurückgibt, wo keine Datensätze angehängt wurden? Anstatt sie in der Ergebnistabelle zu überspringen? Vielen Dank. – Adam92

+0

@ Adam92. . . Das ist eine andere Frage. Sie können es tun, aber die Abfrage sieht ein bisschen anders aus. –

Verwandte Themen