For at håndtere datoer med 0 tilsvarende poster, er min normale praksis at bruge en kalendertabel til at deltage på.
Opret f.eks. en tabel med et felt kaldet calendar_date
og udfyld den med hver dato fra 1st Jan 2000
til 31st Dec 2070
, eller et andet område, der passer til dine rapporteringsformål.
Brug derefter noget 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
Denne tabel kan have mange ekstra anvendelser, såsom markering af helligdage, begyndelse af uger og måneder. Med forsigtig brug af flag og indekser kan du få meget ud af det.