$updateLog = "UPDATE `tablename`
SET `TotalTimeLoggedIn`= (
SELECT TIMEDIFF( `LoggedOut` , `LoggedIn` ) )
WHERE id = '$id'";
我的登录值已经存储,启动上述查询时的已注销值
DateLoggedIn 2016-06-06
LoggedIn 12:50:38
DateLogged Out 2016-06-06
LoggedOut 04:36:57
TotalTimeLoggedIn -08:13:41
它适用于11:20AM
到11:50AM
之类的值,但不适用于11:20 AM
到12:15 PM
的值,其中我也会得到否定值
答案 0 :(得分:0)
TIMEDIFF( `LoggedOut`,`LoggedIn` )
,TIMEDIFF()
返回04:36:57 - 12:50:38表示为时间值。这等于-08:13:41。
您的登录时间是2016-06-06 12:50:38,退出时间是2016-06-06 04:36:57登录后似乎登录完成。(登出时间为04.36 AM,当天下午12点50分登录)。根据24小时制,这看起来不正确。
如果您仍然认为它在12PM和4PM之间的区别尝试这样的话,
IF(TIMEDIFF(`LoggedOut`,`LoggedIn`)<0,
ADDTIME(TIMEDIFF(`LoggedOut`,`LoggedIn`),12:00:00),
TIMEDIFF(`LoggedOut`,`LoggedIn`)
)