- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
SELECT `hours`.`hour` as `h` ,SUM(IF(HOUR(`i`.`time`)=`hours`.`hour`,1,0)) as `count`
FROM `table_name` i
INNER JOIN (SELECT 0 `hour`
UNION ALL SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
UNION ALL SELECT 7
UNION ALL SELECT 8
UNION ALL SELECT 9
UNION ALL SELECT 10
UNION ALL SELECT 11
UNION ALL SELECT 12
UNION ALL SELECT 13
UNION ALL SELECT 14
UNION ALL SELECT 15
UNION ALL SELECT 16
UNION ALL SELECT 17
UNION ALL SELECT 18
UNION ALL SELECT 19
UNION ALL SELECT 20
UNION ALL SELECT 21
UNION ALL SELECT 22
UNION ALL SELECT 23) `hours`
WHERE `service_id`= SOME_SERVICE_ID
AND `date` BETWEEN STR_TO_DATE(SOME_DATE, '%Y-%m-%d ')
AND STR_TO_DATE(SOME_DATE, '%Y-%m-%d ')
GROUP BY `hours`.`hour`