我想区分日期时间为1的日期时间now()和日期时间2是特定用户的上一个日志之间的区别.
我正在寻找这样的东西
TIMESTAMPDIFF(NOW(), Previous_Log_of_User)
Run Code Online (Sandbox Code Playgroud)
所以,如果我有2个用户,我有这个teller_log表
名称时间戳操作持续时间
user1 2015-09-09 15:00:40登录00:00:00
user1 2015-09-09 15:00:45增量00:00:05
user1 2015-09-09 15:00:52增量00:00:07
user2 2015-09-09 15:00:52登录00:00:00
user1 2015-09-09 15:00:55` increment 00:00:03
user2 2015-09-09 15:00:58`增量00:00:06
user1 2015-09-09 15:01:00` logout 00:00:02
user2 2015-09-09 15:01:00` logout 00:00:02
正如您在上面的示例中所看到的,我有2个用户,起点是如果用户logs in,如果用户操作增加,我将计算时间login和increment操作之间的时间,然后如果用户操作再次递增,我们现在将计算之前的增量和现在的增量之间的持续时间,依此类推,直到用户注销,这将标记结束.
我在这里遇到的问题之一是因为表不一致,我不能单独依赖user_id来获取特定用户的先前日志.有些情况下user1的先前id是user2的id.
题:
除了使用时差之外,还有一种简单的方法吗?或者我可以采取的任何其他方法?我在这里度过了充足的时间.
编辑:
我正在使用MySQL和VB.NET.
我的数据库是这样的
在这里我们的重点是在teller_log其记录的任何动作表teller_info,这个teller_info表中获取该用户的名义user_info借助表teller_id无论是在现场user_info和teller_info.
然后,我们可以创建自合并信息的日志user_info,并teller_info借助user_id现场user_info表.
我想要实现的是
WHERE,但不确定?只是为了user1:
SELECT TIMESTAMPDIFF(HOUR, MAX(timestamp), NOW()) AS "Hours since last action"
FROM tbl
WHERE name = 'user1';
Run Code Online (Sandbox Code Playgroud)
每个用户执行某操作后的分钟数:
SELECT name,
TIMESTAMPDIFF(MINUTE, MAX(timestamp), NOW()) AS "Minutes since last action"
FROM tbl
GROUP BY name;
Run Code Online (Sandbox Code Playgroud)
如果您想知道最后发生了什么操作,那就变得更加复杂。