I will fix the SQL statement that you have
DECLARE @punches TABLE ( PunchIn time, PunchOut time )
INSERT @punches VALUES ('07:58', '16:15')
SELECT PunchIn, PunchOut
, [Hours] = DateDiff(Hour, PunchIn, PunchOut)
, [Days] = CASE WHEN DateDiff(Hour, PunchIn, PunchOut) >= 8 THEN 1 ELSE 0 END
FROM @punches
I must let you know that there are a few potential flaws in your logic.
1- If someone works a "double-shift" for 16 hours, would this be 2 days?
2- What about someone working an overnight shift?
3- If someone did work 1 day, did you want the hours reduced by 8?