T-SQL-code, um ein DateTime enthalten nur Monat und Jahr von DateTime

Tabelle Event enthält ein Feld namens EventTime Typ DateTime und dass der Wert enthält sowohl Datum und Zeit, die Elemente, die ich brauche, erstellen Sie eine Zusammenfassung der Abfrage, die die Anzahl der Ereignisse in jedem Monat.

Den resultierenden Typ der Group By-Feld muss auch Datum und Zeit mit einer 0-Zeit-element und setzen Sie auf 1. Tag des Monats.

Dies ist, was ich bisher aber nicht sehr elegant und ich bin sicher nicht besonders effizient.

  SELECT COUNT(1) AS [CountOfEvents],
         DATEADD(d, 1 - DAY(EventTime), DATEADD(dd, 0, DATEDIFF(dd, 0, EventTime))) AS [Month]
    FROM [Event]
GROUP BY DATEADD(d, 1 - DAY(EventTime), DATEADD(dd, 0, DATEDIFF(dd, 0, EventTime)))

Bessere Vorschläge für mehr Effizienz oder Eleganz?

InformationsquelleAutor AnthonyWJones | 2009-10-01

Schreibe einen Kommentar