Abych se vypořádal s daty s 0 odpovídajícími záznamy, mou běžnou praxí je použít kalendářovou tabulku.
Vytvořte například tabulku s jedním polem nazvaným calendar_date
a vyplňte jej každým datem od 1st Jan 2000
do 31st Dec 2070
nebo nějaký jiný rozsah, který vyhovuje vašim účelům vytváření přehledů.
Pak použijte něco jako...
SELECT
calendar.calendar_date,
COUNT(*)
FROM
calendar
LEFT JOIN
yourData
ON yourData.timeStamp >= calendar.calendar_date
AND yourData.timeStamp < calendar.calendar_date + 1
WHERE
calendar.calendar_date >= '01 Jan 2012'
AND calendar.calendar_date < '04 Jan 2012'
GROUP BY
calendar.calendar_date
Tato tabulka může mít mnoho dalších využití, jako je označení státních svátků, začátku týdnů a měsíců. Obezřetným používáním příznaků a indexů z toho můžete hodně vytěžit.