En möjlighet, om du behöver göra detta tillräckligt ofta:lägg till tre beräknade kolumner för dag, månad, år till din tabell. Dessa kolumner beräknas automatiskt baserat på timestamp
kolumn, och de är bara heltalsvärden, så de är lätta att använda i en GROUP BY
.
För att göra detta, använd dessa T-SQL-satser:
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 kan du enkelt välja din data baserat på vilken dag du vill:
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