select CardID,CardTime,case
when CONVERT(varchar(10),CardTime,108) between '18:30:00' and '3:59:00' then '夜班'
when CONVERT(varchar(10),CardTime,108) between '4:00:00' and '10:59:00' then '早班'
when CONVERT(varchar(10),CardTime,108) between '11:00:00' and '18:29:00' then '中班'
end 'Class'
FROM KQ_Detail
group by CardId,CardTime
having DATEPART(m,CardTime)=3
order by CardTime asc