oracle 的跨天查询,考勤跨天如何统计 - Oracle开发 - ITPUB论坛-中国专业的IT技术社区...

本帖最后由 yaksha1 于 2020-9-11 17:29 编辑

请问下,目前正在统计每个人每天考勤数据是否正常,上班打一次卡,下班打一次卡,算是正常。打卡情况大致分两种,一种是正常白班,朝九晚五,一种是跨天,晚上到第二天凌晨。我们有排班时间,比如

姓名          排班开始日期           排班开始时间                       排班结束日期      排班结束时间    上班时间   下班时间

裕民          2020-08-01                18:00:002020-08-02         06:00:00          21:00:00       04:00

刘文          2020-08-01                06:00:00                                2020-08-01         18:00:00               09:00:00       17:00:00

根据排班规则  裕民 这个人要在 2020-08-01 18:00:00 之后打卡 , 到第二天 2020-08-02 06:00:00 之前  打卡就算 是 同一天打卡 (算作 2020-08-01的打卡日期)

刘文        这个人要在 2020-08-01 06:00:00  之后打卡 , 当天 2020-08-01 18:00:00之前打卡就算 同一天打卡

如果某个人的上班、下班打卡时间 在排班时间之内,且没有迟到早退 (比如刘文,上班肯定不能迟于早上9:00, 17:00之前早退),就属于正常考勤,设置为1 否则为0

测试数据如下

with  a  as (

select '裕民'  姓名,   '2020-07-31' 排班开始日期 , '18:00:00' 排班开始时间 ,  '2020-08-01'  排班结束日期,'06:00:00' 排班结束时间,'2020-07-31 22:00:00'工作安排开始时间,'2020-08-01 03:00:00'工作安排结束时间,'2020-07-31 05:00:00' 打卡开始时间 from dual   --7月30日上夜班一直到7月31日 上午打卡下班

union all

select '裕民'  姓名,   '2020-07-31' 排班开始日期 , '18:00:00' 排班开始时间 ,  '2020-08-01'  排班结束日期,'06:00:00' 排班结束时间,'2020-07-31 22:00:00'工作安排开始时间,'2020-08-01 03:00:00'工作安排结束时间,'2020-07-31 19:00:00' 打卡开始时间 from dual  --7月31日上班打卡

union all

select '裕民'  姓名,   '2020-08-01' 排班开始日期 , '18:00:00' 排班开始时间 ,  '2020-08-02'  排班结束日期,'06:00:00' 排班结束时间,'2020-07-31 22:00:00'工作安排开始时间,'2020-08-01 03:00:00'工作安排结束时间,'2020-08-01 05:00:00' 打卡开始时间 from dual  -- 7月31日上夜班一直到8月1日上午打卡下班

union all

select '裕民'  姓名,   '2020-08-01' 排班开始日期 , '18:00:00' 排班开始时间 ,  '2020-08-02'  排班结束日期,'06:00:00' 排班结束时间,'2020-07-31 22:00:00'工作安排开始时间,'2020-08-01 03:00:00'工作安排结束时间,'2020-08-01 19:00:00' 打卡开始时间 from dual   ---8月1日打卡上班

union all

select '刘文'  姓名,   '2020-07-31' 排班开始日期 , '06:00:00' 排班开始时间 ,  '2020-07-31'   排班结束日期,'06:00:00' 排班结束时间,'2020-07-31 09:00:00'工作安排开始时间,'2020-07-31 17:00:00'工作安排结束时间,'2020-07-31 17:30:00' 打卡开始时间 from dual   --7月31日下班打卡

union all

select '刘文'  姓名,   '2020-08-01' 排班开始日期 ,'06:00:00' 排班开始时间 ,  '2020-08-01'  排班结束日期,'06:00:00' 排班结束时间,'2020-08-01 09:00:00'工作安排开始时间,'2020-08-01 17:00:00'工作安排结束时间,'2020-08-01 08:30:00' 打卡开始时间 from dual  --8月1日上班打卡

union all

select  '刘文'  姓名,   '2020-08-01' 排班开始日期 , '06:00:00'排班开始时间 ,  '2020-08-01'  排班结束日期,'06:00:00' 排班结束时间,'2020-08-01 09:00:00'工作安排开始时间,'2020-08-01 17:00:00'工作安排结束时间,'2020-08-01 17:30:00' 打卡开始时间 from dual   --8月1日下班打卡

)

select * from a

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php程序员学什么语言好就业_2019年初中毕业生学什么专业好?学什么专业好就业?...

前言:据了解,目前我国职业人才缺口较大,市场供需不平衡。许多学生往往还没毕业,就已经与企业签订了就业协议。因此,有许多家长愿意把小孩子送到专业学校进行就读。毕竟可以学的一门好专业,对学生将来的路是…

中print中加f_Python3中的格式化输出

Python3字符串格式化输出有两种形式实现:a:字符串格式化表达式: ...%... % (values)b:字符串格式化方法调用:...{}....format(values) 或者 f...{xx}...1:字符串格式化的类型码(typecode)(表1)2: 字符串格式化表达式格…

Json-ServerMockJs简单快速生成测试数据

Json-Server&MockJs简单快速生成测试数据 1、Json-Server 和 MockJs的安装 npm install -g json-server //全局安装2、创建目录和初始话 例如:创建D:\ProjectOne文件夹 3、打开终端或者powershell进入ProjectOne文件夹 4、初始化项目 npm init5、安装Mock…

oracle索引sys_nc,通过dba_ind_columns表查到索引所在列的名字为SYS_NC00133$

使用下面的脚本查看表上索引相关信息:selectind.uniqueness uniq,ind.owner||.||col.index_name indname,col.column_name colnamefromdba_ind_columns col,dba_indexes indwhereind.owner upper(&ixowner)andind.table_name upper(&tabname)andcol.index…

oracle nvl和coalesce,NVL与Coalesce之间的Oracle差异

慕码人8056858COALESCE是更现代的功能,是ANSI-92标准的一部分。NVL在Oracle具体的,它在推出80的前存在任何标准。在两个值的情况下,它们是同义词。但是,它们的实现方式不同。NVL总是计算两个参数,同时COALESCE通常在找…

安卓签名生成工具_ios app如何进行内测?ios app和安卓app的内测有何区别?

目前手机主流的操作系统分为Android和iOS两大阵营,分别是由谷歌和苹果进行开发维护。这两大平台的应用都相互独立,无论是运行机制还是底层原理,都不一样,所以即使是同一款App也是需要针对在两大平台上分别进行内测和运营、发布。那…

cx oracle dpi 1002,cx_Oracle连接数据库总结

python中连接oracle数据库使用第三方库文件cx_Oracle时遇到了各种问题,网上查找资料调试了几天才弄好,下面是不断调试后总结的一些经验。1.oracle客户端(Oracle Instant Client)版本需要和操作系统版本位数相同,同时cx_Oracle官方文档(http:/…

虚拟机python建站_搭建本地虚拟服务器linux(CentOS 7)的python虚拟环境(Hyper-V演示)...

新建虚拟机->安装CentOS7->新建虚拟交换机:内部网络->CentOS7设置->网络适配器:虚拟交换机:新建虚拟交换机->进入CentOS#cd /etc/sysconfig/network-scripts/#ls -a#vi ifcfg-eth0 #(有些系统不是eth0,前面ifcfg-的…

matlab 输入日期,matlab输入年月日算一年中的第几天.doc

matlab输入年月日算一年中的第几天clc,clear all,close alldisp This program calculates the day of year given the ;disp current date. ;month input Enter current month 1-12 : ;day input Enter current day 1-31 : ;year input Enter current year yyyy : ;%Check for …

深拷贝的缺点_拷贝?还傻傻分不清深浅?

「引言」❝臣闻求木之长者,必固其根本;欲流之远者,必浚其泉源。---- 魏征 《谏太宗十思疏》❞或许你会问到,网上已经把深浅拷贝(算一个面试的高频考点了吧)的文章都快写烂了,为什么自己还要重新操刀写一遍呢&#xff0…

php 失去 焦点 另一个表单猎取值,同一表单如何根据某一个文本框的值 改变另一个文本框的值...

我用的是失去焦点,然后后台查询到了数据,返回回来显示不了!!$(document).ready(function(){$("#card").blur(function(){var card$("#card").val();if(card!""){$.get("{:U(guoye/yanzheng)}&…

实现文件中名词的统计计数_通过勤哲EXCEL和Excel中的rank函数实现排名统计

如今,信息化已成为各行业企业转型和发展的关键所在,信息化技术最明显的特点是企业不同部门的人在信息技术的支撑下,可以利用丰富的资源与工具展开协作学习,在相对自由的模式和环境下,改变传统设计相对局限、固定思维的…

php 选择 出现列表,php – 如何从加权列表中选择4个唯一项?

所以我有一个加权项目列表,我想从这个列表中选择4个非重复项目.Item WeightApple 5Banana 7Cherry 12...Orange 8Pineapple 50最有效的方法是什么?我最初的尝试是,如果一个已经被选中的项目出现的话,只需重新选择随后的选秀权……但是对于一个小名单,这可能会导致大…

安徽关节式焊接机器人_上下料机器人的重要性体现在哪里?它有哪些优势?

上下料机器人是工业机器人家族中从事加工应用的重要成员之一,能满足“快速、大批量加工节拍”、“节省人力成本”、“提高生产效率”等要求,成为越来越多中心企业的理想选择。那么,上下料机器人有哪些特征和优势?企业主应该如何选…

oracle查询ora03114,求教:ora-03114错误从哪里排查?

ERP软件偶尔会报 ora-03114错误 未连接到oracle我检查数据库的根超时有关的设置dba_profiles中的如下两个参数,都是不限制connect_timeunlimitedidle_timeunlimitedsqlnet.net中,只设置了如下参数SQLNET.EXPIRE_TIME5 --这个用来清除僵死连接的监听日志文…

python大学什么专业学校_好学校的差专业和一般大学的好专业,该怎么选?我来说真话……...

假如是985,那么只能调剂专业,那么好点211能选到不错的专业。那该怎么选择?其实不单单是985/211的问题,是所有考生的任何一个分数都面临这个问题。比如清华北大被调剂,是去复交金融,还是去清华北大调剂去学环…

oracle查询表nextval,Oracle Database 建立与查询 Sequence

相关的 Oracle Database Sequence 资讯如下:建立 Sequence 语法create sequence ._sincrement by 1start with 1maxvalue 99999999999999999999minvalue 1nocycle;其中 :incerment: 每次增加的数值start : Sequence 开始数值maxvalue : Sequence 最大值nocycle …

vision软件_Roboguide软件:高速拾取仿真工作站相机与工具添加与配置

上一期为大家介绍了机器人高速拾取仿真工作站中工件、视觉校准板、输送带等外围设备的添加与配置,本期再来为大家介绍一下相机、机器人工具的添加与配置。一、相机添加与配置1.左侧浏览树中右击“Sensor Units”,在弹出的快捷菜单中依次点击“Add Sensor…

oracle00333,Oracle数据库REDO损坏ora-00333修复手札

1.事情起因接到电话,周日意外断电,数据库起不了,报REDO CRASH,ora-00333错误。相关环境如下:RAC oracle_11.2.0.3,无备份,开归档。2 处理一到现场,既然对方没有备份,那就做一个冷备份…

oracle cannot allocate new log,Thread 1 cannot allocate new log

今天发现alter.log有以下信息:Thread 1 cannot allocate new log, sequence 6166Private strand flush not complete对于这个错误信息得解释如下:当系统要重新利用某个日志文件的时候,系统需要将该日志文件所包括的buffer cache 中的dirty bl…