För att hantera datum med 0 motsvarande poster, är min normala praxis att använda en kalendertabell att gå med på.
Skapa till exempel en tabell med ett fält som heter calendar_date
och fyll i den med varje datum från 1st Jan 2000
till 31st Dec 2070
, eller något annat intervall som passar dina rapporteringsändamål.
Använd sedan något som...
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
Den här tabellen kan ha många extra användningsområden, som att flagga helgdagar, början av veckor och månader. Med försiktig användning av flaggor och index kan du få ut mycket av det.