400岁老人:sql 计算在线时间总长

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 00:44:04
tbllog表:Log_ID,Action_ID,Actiontime,User_ID
用来放ID、用户登陆/退出说明、用户登陆/退出时间、用户ID,现在想把登陆和退出时间放在同一条记录中(就是同一行),这种SQL该怎么写啊~
Ps:登陆和退出的Log_ID不一样,退出的Log_ID大于登陆的Log_ID,唯一能确定的是退出Log_ID的前一个登陆Log_ID与之对应。

使用自联接就可以了

不过不太清楚你的表中,登录和退出用什么来一一对应。
写个语句你参考一下吧。最后的“and a.类型='登录' and b.类型='退出'”
这部分要根据你表的具体字段来填写。并且每一条登录和退出如果存在对应关系的话,一定要在条件里加上。

select a.user_id,a.actiontime,b.actiontime
from tbllog a,tbllog b
where a.user_id=b.user_id and a.类型='登录' and b.类型='退出'

将Actiontime字段改成字串格式
用户登陆
sql="update tbllog set actiontime='"&Cstr(Now())&"' where log_ID="&"id"
用户退出
sql="select * from tbllog where log_ID="&"id"
rs.open sql,conn,1,3
rs("actiontime")=rs("actiontime")&" | "&Cstr(Now())
rs.update
rs.close
set rs=nothing