En mulighed, hvis du har brug for at gøre dette ofte nok:Tilføj tre beregnede kolonner for dag, måned, år til din tabel. Disse kolonner beregnes automatisk baseret på timestamp
kolonne, og de er kun heltalsværdier, så de er nemme at bruge i en GROUP BY
.
For at gøre dette skal du bruge disse T-SQL-sætninger:
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 nemt vælge dine data baseret på enhver dag, du ønsker:
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