Een mogelijkheid, als u dit vaak genoeg moet doen:voeg drie berekende kolommen voor dag, maand en jaar toe aan uw tabel. Die kolommen worden automatisch berekend op basis van de timestamp
kolom, en het zijn gewoon gehele waarden, dus ze zijn gemakkelijk te gebruiken in een GROUP BY
.
Gebruik hiervoor deze T-SQL-statements:
ALTER TABLE dbo.ROASTER_FEED ADD TSDay AS DAY(timestamp) PERSISTED
ALTER TABLE dbo.ROASTER_FEED ADD TSMonth AS MONTH(timestamp) PERSISTED
ALTER TABLE dbo.ROASTER_FEED ADD TSYear AS YEAR(timestamp) PERSISTED
Nu kunt u eenvoudig uw gegevens selecteren op elke gewenste dag:
SELECT TSDay, TSMonth, TSYear, SUM(FEED) -- use AVG(FEED) for average values
FROM dbo.ROASTER_FEED
WHERE TSYear = 2011 AND TSMonth = 8 -- or whatever you want to grab from the table!
ORDER BY timestamp
GROUP BY TSDay, TSMonth, TSYear