首页 > 解决方案 > 在请求中,oracle 指定在 30 分钟内指定一个增量(人员可以来更改)

问题描述

我的要求是甲骨文,没有问题就可以正常工作。

我在 API 中使用它来检查卡的状态(允许访问,不允许访问)。但是请求中有问题

我检查卡片上的活动和工作时间表。但是我仍然需要考虑到 30 分钟的增量,在日程安排之前和日程安排之后(以便工作人员可以早到晚离开)。30. 但是我从 00:00 到 23:59 的日程安排有问题。

问题是查询在 23:30 到 00:29 之间执行此计划。只有这样才有可能通过。我将不胜感激。

带注释的选择(这是一个 delta 30 分钟的选择)最后一个选择是专门为工作计划选择的(但我不需要这种形式)

 select a.status
  from EM_STATUS_CARD a
     left join EM_CARD b on  a.ID_CARD = b.ID_CARD and  b.del = 'false'
     left join EM_CARD_ZONE v on  a.ID_CARD = v.ID_CARD
     left join EM_EMPLOYEE m on  a.EMPLOYEE_ID = m.guid
     left join EM__WORK_SCHEDULE p on  m.SCHEDULE_ID = p.guid
     INNER JOIN(
                  select MAX(l.id) id, l.ID_CARD
                  from EM_STATUS_CARD l
                  GROUP BY l.ID_CARD
                  ) t
                  on t.id = a.id   AND t.ID_CARD = a.ID_CARD
  where
        a.ID_CARD = '0000003995E0' 
     -- and TO_CHAR (sysdate, 'HH24:MI' ) between  to_char((to_date(p.FROMS, 'HH24:MI') - (1/24/60) * 30), 'HH24:MI ')   and  to_char((to_date(p.tos, 'HH24:MI') + (1/24/60) * 30) , 'HH24:MI')
     and TO_CHAR (sysdate, 'HH24:MI' ) between  p.FROMS and p.tos
                                                                     

标签: sqloracleselect

解决方案


推荐阅读