问题现象: | 你好,请问下,客户买了我们的薪资和考勤模块,客户是三班倒的企业,夜班是17:00-3:00,企业对在22:00-6:00这个时段上班的员工,每小时补助2元,请问如何实现,我本想用Datediff函数求出两时点之间的分钟数除以60,如果一个员工的上班时间是17:00-23:50,请问在我们软件中,如何用datediff函数实现这个效果???? |
问题原因: | |
解决方案: | 您好, 此问题【经测试】现做如下分析与答复: 【解决方案】 针对客户的补助22:00-6:00上班时间,提供方案,请测试是否可以.意思是分情况,用日结果中的上班1减去下班1得出小时.并用条件判断刷卡时间在不在22:00-6:00 分情况 如果 DATEPART('hour',考勤日结果.上班1) >= 22 and DATEDIFF('hour', 考勤日结果.上班1 , 考勤日结果.下班1) > 0 and DATEPART('hour', 考勤日结果.下班1)<=6 那么 abs( DATEDIFF('hour', 考勤日结果.上班1 , 考勤日结果.下班1)) 如果 DATEPART('hour',考勤日结果.上班1)< 22 and DATEDIFF('hour', 考勤日结果.上班1 , 考勤日结果.下班1) > 0 and DATEPART('hour', 考勤日结果.下班1)<=6 那么 abs( DATEDIFF('hour', 考勤日结果.上班1 , 考勤日结果.下班1)) - ( 22 - DATEPART('hour',考勤日结果.上班1) ) 如果 DATEPART('hour',考勤日结果.上班1)< 22 and DATEDIFF('hour', 考勤日结果.上班1 , 考勤日结果.下班1) > 0 and DATEPART('hour',考勤日结果.下班1) > 6 那么 abs( DATEDIFF('hour', 考勤日结果.上班1 , 考勤日结果.下班1)) - ( 22 - DATEPART('hour',考勤日结果.上班1) ) - ( DATEPART('hour',考勤日结果.下班1)-6 ) 如果 DATEPART('hour',考勤日结果.上班1)> 22 and DATEDIFF('hour', 考勤日结果.上班1 , 考勤日结果.下班1) > 0 and DATEPART('hour',考勤日结果.下班1) > 6 那么 abs( DATEDIFF('hour', 考勤日结果.上班1 , 考勤日结果.下班1)) - ( DATEPART('hour',考勤日结果.下班1) - 6 ) 结束 |
相关补丁: | |
版本: | U8 V10.0 |
模块: | 考勤管理 |
产品: | 人力资源 |
问题名称: | 关于夜勤补贴的询问? |
最后更新: | 2011-09-07 23:24:41 |