If there's always a login then perhaps something like
SELECT i.*,
(SELECT o.logdetail
FROM LoginDetails o
WHERE i.empid = o.empid
AND CONVERT(date, i.logdetail) = CONVERT(date, o.logdetail)
AND o.logdetail > i.logdetail
AND o.isstatus = 0
AND o.logdetail = (SELECT MIN(o2.logdetail)
FROM LoginDetails o2
WHERE o2.logdetail > i.logdetail)
) AS logout
FROM LoginDetails i
WHERE i.isstatus = 1
ADDITION:
Added total time in minutes. The formatting for the total time should be done at client side
SELECT a.loginid,
a.empid,
a.logintime,
a.logouttime,
DATEDIFF(MINUTE, a.logintime, a.logouttime)
FROM (
SELECT i.loginid,
i.empid,
i.logdetail as logintime,
(SELECT o.logdetail
FROM LoginDetails o
WHERE i.empid = o.empid
AND CONVERT(date, i.logdetail) = CONVERT(date, o.logdetail)
AND o.logdetail > i.logdetail
AND o.isstatus = 0
AND o.logdetail = (SELECT MIN(o2.logdetail)
FROM LoginDetails o2
WHERE o2.logdetail > i.logdetail)
) AS logouttime
FROM LoginDetails i
WHERE i.isstatus = 1) a