员工一天有多个上下班,没有迟到现象,只要员工上满8小时后,都算加班的时间。
求一个工作时间的累加,
例如:王五;(正常打卡的状态下):
1,上班 打卡时间:8:00 状态 0
2,午休回去打卡:11:00 状态 1
3,下午回来打卡:11:30 状态 0
4,晚上下班打卡:12:00 状态 1
5,下午回来打卡:14:30 状态 0
6,晚上下班打卡:17:00 状态 1
0表示上班状态,1表示下班状态
怎么通时员工的打卡状态(cuser2)跟打卡时间(brushdatetime),员工ID(empno char(32)),部门ID(deptno char(32))。 能不能做出员工每个月上班多少小时,加班多少小时,缺勤多少小时? 会的高手帮忙指点下。。。在此感谢了,论坛逛了好多,都没有找到类似的案例。。
你先算出每天的上班多少小时,加班多少小时,缺勤多少小时?然后再算出月的。
感觉你要把他们一个个分开来吧,不能全是0和1,这样你能分开是哪个打的吗
我觉得要这样:
1,上班 打卡时间:8:00 状态 0
2,午休回去打卡:11:00 状态 1
3,下午回来打卡:11:30 状态 2
4,晚上下班打卡:12:00 状态 3
5,下午回来打卡:14:30 状态 4
6,晚上下班打卡:17:00 状态 5
这样你才能算出每个人,每天到底上了多少小时,然后再算月吧,不知道对你有没有用,只是个人看法。
你的表结构是咋样的?向上面说的那种情况能预防吗?
感觉你的数据库设计太麻烦了,数据库字段不能直接设成这样么? 上午上班时间, 上午下班时间,下午上班时间,下午下班时间,晚上上班时间,晚上下班时间,其它字段。 这样的个人每日考勤数据就只有一条了,而且很容易计算了。
这种方式,是可以的,毋庸置疑的!如果一定要按楼主那样,我很好奇这个数据库要如何设计,数据的冗余有多少?
但是,在实际的应用的,很少有公司这样去算一个员工的加班,也很少有员工会愿意吃个饭还要打卡。。。
我有个建议,也相信绝大多数公司都是这样:
上班打卡一次,下班打卡一次,计算两者之间的时间差,再减去中午的休息时间(如果有),就是员工一天的工作时长了。即简单又合理。。。