Satu kemungkinan, jika Anda perlu melakukan ini cukup sering:tambahkan tiga kolom terhitung untuk hari, bulan, tahun ke tabel Anda. Kolom tersebut dihitung secara otomatis berdasarkan timestamp
kolom, dan itu hanya nilai integer, sehingga mudah digunakan dalam GROUP BY
.
Untuk melakukannya, gunakan pernyataan T-SQL berikut:
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
Sekarang, Anda dapat dengan mudah memilih data berdasarkan hari yang Anda inginkan:
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