请用SQL查询:昨天所有用户的签到和签退时间

考勤签到表的数据结构如下,表名:hrmschedulesign

IDuseridsigndatesigntimeclientaddress
1A012019-06-1708:32:40192.165.16.124
1A012019-06-1710:52:30192.175.14.127
1A012019-06-1718:32:43192.169.13.125
1A022019-06-1709:14:35192.165.18.122

(备注:在考勤表中每个用户会有1-N条打卡的记录,以每天的最早时间为签到数据,最晚时间为签退数据,跨天时间不需考虑)
请用SQL查询:昨天所有用户的签到和签退时间:

select userid,min(signtime) startTime,max(signtime) endTime from hrmschedulesign where (sysdate-to_date(signdate,'YYYY-MM-DD'))=1 group by userid;

解释:
我们通过where (sysdate-to_date(signdate,'YYYY-MM-DD'))=1筛选出昨天的所有数据,由于signdate不是标准的YYYY/MM/DD的形式,所以肯定不是date类型的,因为我们在和sysdate比较的时候需要通过to_date()函数把字符串变成date类型的数据,之后就可以比较了,得出的就是天数,对于signtime来说,可以使用min()和max()进行比较,我虽然不知道为什么可以,不过确实是可以的,最后在通过userid进行分组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值