try this,
select EmpID,date, convert(varchar,sum(datediff(MINUTE,stm,etm))/60) + ':' + convert(varchar,sum(datediff(MINUTE,stm,etm)) % 60) as hrs from
(
SELECT
EmpID,
convert(datetime,convert(varchar(10),a.date,102)) as date,
date as etm,
(
SELECT top 1 date
FROM log
WHERE [Status] = 1 and date<= a.date and empid=a.empid and convert(datetime,convert(varchar(10),a.date,102))=convert(datetime,convert(varchar(10),date,102)) order by date desc
) as stm
FROM log as a
WHERE [Status] = 2
)as a
where stm is not null
group by empid,date
remove underlined field if you don't want date-wise working hours
Happy Coding!
:)