Mam kilka zamówień na produkty i próbuję pogrupować według daty i zsumować ilość dla tej daty. Jak mogę grupować według miesiąca / dnia / roku bez uwzględnienia części czasu?
3/8/2010 7:42:00
powinien być zgrupowany z 3/8/2010 4:15:00
sql
sql-server
tsql
sql-server-2008
The Muffin Man
źródło
źródło
Odpowiedzi:
Przesyłaj / Konwertuj wartości na
Date
typ dla swojej grupy według.źródło
DateTime.Date
.DateTime.Date
- Entity Framework:EntityFunctions.TruncateTime(myDateTime)
Lub w programie SQL Server 2008 i
Date
nowszych wersjach można po prostu przesyłać według sugestii @Oded:źródło
W wersji sprzed Sql 2008 poprzez wyjęcie części daty:
źródło
GROUP BY DATE(date_time_column)
źródło
Oto przykład, którego użyłem, gdy potrzebowałem zliczyć liczbę rekordów dla określonej daty bez przedziału czasowego:
źródło
Oto przykład, który działa dobrze w wyroczni
źródło
Dotychczasowe pole daty i godziny CAST
źródło
Uważam, że musisz pogrupować według, w tym dniu miesiąca. więc dlaczego nie skorzystać z funkcji TRUNK_DATE. Sposób działania opisano poniżej:
źródło