Untuk menangani tanggal dengan 0 catatan yang sesuai, praktik normal saya adalah menggunakan tabel kalender untuk bergabung.
Misalnya, buat tabel dengan satu bidang bernama calendar_date
dan isi dengan setiap tanggal dari 1st Jan 2000
ke 31st Dec 2070
, atau rentang lain yang sesuai dengan tujuan pelaporan Anda.
Kemudian gunakan sesuatu seperti...
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
Tabel ini dapat memiliki banyak kegunaan tambahan, seperti menandai hari libur bank, awal minggu dan bulan. Dengan penggunaan flag dan indeks yang bijaksana, Anda bisa mendapatkan banyak manfaat darinya.