declare @A table
(
姓名  char(4),
上班开始时间 datetime,
上班结束时间 datetime
)insert @A select '小张','2008-10-25 07:00:00.000','2008-10-25 23:59:00.000'
union all select '小明','2008-10-25 08:00:00.000','2008-10-25 21:30:00.000'
select
姓名,
datediff(hour,上班开始时间,上班结束时间) % 8,
出勤天数 = datediff(hour,上班开始时间,上班结束时间) / 8 
+ case when datediff(hour,上班开始时间,上班结束时间) % 8 <=4 then 0 else 0.5 end
from @A/**
小张 0 2.0
小明 5 1.5
**/
睡觉前,替小梁解决这个问题吧.