签到表:字段有
用户id userid
签到时间 signtime 时间戳类型 int
签到类型 type 分为 0和1 分别代表 签到和签退, 一个用户一天可以签两次, 一次 签到 一次签退。 签到和签退都是必须在一天,不考虑不在一天。
现在想要把签到 和签退 之间的时间(两个时间相减)查出来 ,并且按照这个时间排序, 最后分组给每个用户。
这还需要考虑到, 这个用户有签到, 没签退的情况 。
主要是判断如果这个用户都有签到和签退就把两个时间的差值求出来 这个弄出来就好了
这如何写sql计算呢
假设表结构如下
可以用如下SQL解决
不过没有考虑到跨天签到的,比如早上9点打卡,第二天上午7点下班的情况。。。。