Hal ini mungkin menyulitkan mengingat timestamp akan menyimpan tahun sampai milisecond.
Sebagai contoh saya memiliki tabel seperti ini :
mysql> SELECT `sid`, `sdate` FROM `t_stats`; +-----+---------------------+ | sid | sdate | +-----+---------------------+ | 1 | 2011-10-10 16:24:53 | | 2 | 2011-10-10 16:25:39 | | 3 | 2011-10-10 16:28:05 | | 4 | 2011-10-10 16:30:14 | | 5 | 2011-10-10 16:30:34 | | 6 | 2011-10-10 16:32:19 | | 7 | 2011-10-10 16:33:05 | | 8 | 2011-10-10 16:36:33 | | 9 | 2011-10-10 16:38:13 | | 10 | 2011-10-10 16:44:05 | | ... | ... | +-----+---------------------+ 165764 rows in set (0.00 sec)Untuk dapat menghitung jumlah row pada tanggal, bulan, dan tahun yang sama, Anda bisa menggunakan bentuk query seperti ini :
SELECT COUNT(*) AS `count`, DATE_FORMAT(sdate, '%Y-%m-%d') AS `the_date` FROM `t_stats` GROUP BY `the_date`;Sehingga akan menghasilkan bentuk tabel seperti ini :
mysql> SELECT COUNT(*) AS `count`, DATE_FORMAT(sdate, '%Y-%m-%d') AS `the_date` FROM `t_stats` GROUP BY `the_date`; +-------+------------+ | count | the_date | +-------+------------+ | 73 | 2011-10-10 | | 12 | 2011-10-11 | | 18 | 2011-10-13 | | 2 | 2011-10-14 | | 23 | 2011-10-16 | | 109 | 2011-10-17 | | 61 | 2011-10-18 | | 1171 | 2011-10-19 | | 984 | 2011-10-20 | | 912 | 2011-10-21 | | ... | ... | +-------+------------+ 129 rows in set (0.28 sec)Begitu juga dengan bulan, dan tahun : Untuk group berdasarkan bulan, bisa dengan bentuk query :
SELECT COUNT(*) AS `count`, DATE_FORMAT(sdate, '%Y-%m') AS `the_month` FROM `t_stats` GROUP BY `the_month`;Untuk group berdasarkan tahun, bisa dengan bentuk query :
SELECT COUNT(*) AS `count`, DATE_FORMAT(sdate, '%Y') AS `the_year` FROM `t_stats` GROUP BY `the_year`;