计算具有非连续id的mysql中两行之间的时间差

时间:2015-06-30 06:03:58

标签: java mysql

我陷入困境。我在mysql数据库中有一个表,其中我有特定地点的一些员工的出勤记录。我想计算一个员工在特定日期的总登录时间。 这是我桌子的图像。抱歉格式化。

enter image description here

1 个答案:

答案 0 :(得分:0)

在sql中这很难,因为你没有一种简单的方法来匹配登录和退出记录。

对于SQL,它会像这样(未经测试)

select t1.*, t1.date+t1.time as LoginTimeStamp,
 (select top 1 t2.date+t2.time from table t2 
    where 
         t1.user_id=t2.user_id 
     and t1.location_id=t2.location_id
     and t2.date+t2.time > t1.date+t1.time 
    order by t2.date+t2.time asc) 
 as LogoutTimeStamp
 from table t1 where attendance_status='In'