过滤IN和OUT打卡时间,以便在oracle SP中参加白天和夜班?

时间:2015-07-21 06:21:37

标签: oracle oracle11g oracle10g time-and-attendance

我正在开发日夜班的考勤系统我无法过滤员工的IN和OUT拳?以下是我目前的逻辑。

2015年6月29日22:00 00:00 07:00和2015年6月30日15:00 OUT 22:30

我根据换班时间和刷卡时间以及日期来过滤IN和OUT拳,但是当员工从夜班换到白班时我遇到了问题。 以下是一个场景 该员工:101在2015年6月29日晚上22:00打完夜班工作,第二天他离开的时间是2015年6月30日上午07:00,同一天(2015年6月30日)他来了2015年6月30日15:00到办公室,当天22:30离开。

在这种情况下,我怎样才能获得这两个日期的IN和OUT大部分?

样本数据

enter image description here

员工编号60和61班次上午8点到下午5点。 员工70号轮班时间下午6点到凌晨3点。

1 个答案:

答案 0 :(得分:0)

我不认为只需查看每个日期的数据即可。例如员工60,我们有时间:

6:00 9:00 12:00

这可能意味着什么。也许你可以使用更多的知识,例如正常的班次开始和结束时间以及班次持续时间。

如果没有人错过时钟,那么您可以按日期+每位员工的时间对条目进行排序。奇数编号的条目是IN,偶数条目是OUT。但是你最好把你的数据放在一个日期列中,因为你给出的样本看起来像是我的字符串数据。