За да се справя с дати с 0 съответстващи записи, обичайната ми практика е да използвам календарна таблица, към която да се присъединя.
Например, създайте таблица с едно поле, наречено calendar_date
и го попълнете с всяка дата от 1st Jan 2000
до 31st Dec 2070
, или някакъв друг диапазон, който отговаря на вашите отчетни цели.
След това използвайте нещо като...
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
Тази таблица може да има много допълнителни приложения, като маркиране на официални празници, начало на седмици и месеци. С разумно използване на флагове и индекси можете да извлечете много от него.