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
Du musst angemeldet sein, um einen Kommentar abzugeben.
dieser Böden, um den Monat:
Ausgabe:
also versuchen Sie dies:
Was ist der Zweck der BESTELLUNG von 2 ?
es wird die Sortierung der Abfrage durch die zweite Spalte. Bei mir lief diese Abfrage auf meinem system, war es schwierig, die Ergebnisse zu kontrollieren, also sortierte ich Sie. Wenn ich klebte es in hier, ich gerade verlassen, dass es. entfernen, wenn Sie es nicht brauchen.
InformationsquelleAutor KM.
InformationsquelleAutor LukeH
Es ist ein
MONTH(GetDate())
T-SQL-Funktion, die Sie verwenden können.Sind auch Sie nur versuchen, Streifen Sie die Zeit, die aus einer Datum-Zeit?
Wenn ja, versuchen Sie dies:
Es ist ein bisschen sauberer und besser lesbar.
InformationsquelleAutor JonH
werden kann, das ist mehr 'lesbar':
InformationsquelleAutor manji