Jedna možnost, pokud to potřebujete dělat dostatečně často:přidejte do tabulky tři vypočítané sloupce pro den, měsíc, rok. Tyto sloupce jsou počítány automaticky na základě timestamp
a jsou to pouze celočíselné hodnoty, takže je lze snadno použít v GROUP BY
.
Chcete-li to provést, použijte tyto příkazy T-SQL:
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
Nyní si můžete snadno vybrat svá data podle libovolného dne:
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