select id,FLOOR(id/4) hourGroup
, case FLOOR(id/4)
        when 0 then '00:00~04:00'
        when 1 then '04:00~08:00'
        when 2 then '08:00~12:00'
        when 3 then '12:00~16:00'
        when 4 then '16:00~20:00'
        when 5 then '20:00~00:00' end hourRange
from (
select     0    as id  union
select     1    as id  union
select     2    as id  union
select     3    as id  union
select     4    as id  union
select     5    as id  union
select     6    as id  union
select     7    as id  union
select     8    as id  union
select     9    as id  union
select     10    as id  union
select     11    as id  union
select     12    as id  union
select     13    as id  union
select     14    as id  union
select     15    as id  union
select     16    as id  union
select     17    as id  union
select     18    as id  union
select     19    as id  union
select     20    as id  union
select     21    as id  union
select     22    as id  union
select     23    as id
) t
order by id  ;

https://www.cnblogs.com/linbo3168/p/13680768.html