Една възможност, ако трябва да правите това достатъчно често:добавете три изчислени колони за ден, месец, година към вашата таблица. Тези колони се изчисляват автоматично въз основа на timestamp
колона и те са само цели числа, така че са лесни за използване в GROUP BY
.
За да направите това, използвайте тези 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
Сега можете лесно да изберете вашите данни въз основа на всеки ден, който пожелаете:
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