【问题标题】:filter IN and OUT punch timings for Attendance in Day and Night shifts in oracle SP?在 oracle SP 中过滤日班和夜班出勤的 IN 和 OUT 打卡时间?
【发布时间】:2015-07-21 06:21:37
【问题描述】:

我正在开发有昼夜班的考勤系统,我无法过滤员工的进出打卡?以下是我目前的逻辑。

2015 年 6 月 29 日 IN 22:00 OUT 07:00 和 2015 年 6 月 30 日 IN 15:00 OUT 22:30 的轮班时间

我正在根据轮班时间和滑动时间以及日期来过滤进出拳,但是当员工从夜班换到白班时,我遇到了问题。 以下是一种情况 员工:101 曾在 2015 年 6 月 29 日上夜班,22:00 打卡,他在第二天离开意味着 2015 年 6 月 30 日上午 07:00 和同一天(2015 年 6 月 30 日)他来了2015 年 6 月 30 日 15:00 到办公室,当日 22:30 离开。

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

样本数据

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

【问题讨论】:

  • 是OUT时间没有日期分量的问题吗?在这种情况下,您也许可以推断当 OUT 时间小于 IN 时间时,它一定是第二天?
  • 没有。我将日期的最短时间设为 IN TIME,将日期的最长时间设为 OUT TIME。但是,当在 2 天之间滑动时,我能做什么。
  • 请向我们展示您的表格和数据样本。
  • 向问题添加了示例数据。
  • 为什么日期格式会改变?时间格式 6.00 和 6.02 是什么意思?

标签: oracle oracle11g oracle10g time-and-attendance


【解决方案1】:

我认为这不能仅通过查看每个日期的数据来完成。例如员工 60 我们有时间:

6:00 9:00 12:00

这可能意味着任何事情。也许如果您可以使用更多知识,例如正常的班次开始和结束时间以及班次持续时间。

如果没有人错过打卡,那么您可以按每个员工的日期+时间对条目进行排序。奇数条目是 IN,偶数条目是 OUT。但是您最好将数据放在日期列中,因为您提供的示例在我看来就像字符串数据。

【讨论】:

  • 我可以认为奇数条目是 IN,偶数条目是 OUT。但是如果员工轮班时间跨度为 2 天,这个逻辑是否正确?
  • 例如,如果今天凌晨 1 点有打卡,并且该员工外出打卡,根据上述逻辑仍将视为 IN。因为今天是第一次打。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-29
  • 1970-01-01
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 2021-01-06
  • 1970-01-01
相关资源
最近更新 更多