oracle处理考勤时间,拆分考勤时间段的sql语句
最近一直在用mysql数据库做云项目,有段时间没有接触oracle了,昨天有朋友叫我帮忙用oracle处理一个考勤记录的需求,我在考虑如何尽量精简实现上面花了一些时间。于是把这个实现做个总结。
需求如下:
- rownum为奇数的为进厂时间,偶数的为离场时间
- 第一个奇数行的时间被第一个偶数行相减,以此类推
- 将上面两步产生的时间结果集相加得出总时间作为当天考勤时间
最终能和别的表联合起来形成这样的展示:
人员 |
日期 |
工时 |
入厂时间 |
出厂时间 |
张三 |
2015/6/18 |
9小时30分钟 |
8:00:00 |
10:30:00 |
11:00:00 |
12:30:00 |
|||
13:30:00 |
17:30:00 |
|||
18:00:00 |
18:30:00 |
|||
19:00:00 |
19:30:00 |
|||
20:00:00 |
20:30:00 |
|||
李四 |
… |
… |
.. |
.. |
要我实现的是如何把时间一列的数据拆分成为两列来显示:
原来一列是这样的:
要实现的拆分的效果是这样的:
实现方式如下:
首先创建一个时间表(当然这里我关注的只是scan_time这个字段,其他字段不用理会):
create table CMIS_PERSON_FI_DETAIL_TB (detail_id NUMBER(20) not null,scan_time DATE,person_fk_id NUMBER(20) not null )
其次,插入数据,插入数据之后的效果是这样的:
最后编写sql进行实现,实现的sql语句如下所示:
select max(a) in_time, max(b) out_timefrom (select decode(mod(rownum, 2), 1, scan_time) a,decode(mod(rownum, 2), 0, scan_time) b,round(rownum / 2) cfrom CMIS_PERSON_FI_DETAIL_TB)group by corder by c;
运行sql,得到了想要的效果,如下所示:
转载于:https://www.cnblogs.com/longshiyVip/p/4590956.html
oracle处理考勤时间,拆分考勤时间段的sql语句相关推荐
- oracle sq语句查询时间,Oracle实现查询时间段的Sql语句两法
Oracle实现查询时间段的Sql语句两法,相比ORacle要查询时间段的Sql语句还是与Sql Server的Sql语句有区别的,下面举两种方法来说明在ORacle是如何查询时间段的: 第一种方法: ...
- 统计每天某一时间段的SQL语句
求一个统计每天某一时间段的SQL语句 我的表结构 id cardid name zhiwu time 1 2 ...
- Oracle查询某一天日期数据的SQL语句的几种写法
本文章向大家介绍Oracle查询某一天日期数据的SQL语句的几种写法,主要包括Oracle查询某一天日期数据的SQL语句的几种写法使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值, ...
- oracle添加表的索引,oracle批量添加指定表前缀的索引SQL语句
oracle批量添加指定表前缀的索引SQL语句 需要输入用户名,表空间,索引个数,表名前缀,过滤的表名后缀 ##需要输入用户名,表空间,索引个数,表名前缀,过滤的表名后缀 declare --用户名 ...
- mysql 日期减10分钟_获取当前时间减去10分钟的话SQL语句怎么写
获取当前时间减去10分钟的话SQL语句怎么写 Mysql日期和时间函数不求人 本文出自:http://linuxdb.yeah.net 作者: 晏子 (2001-07-05 15:00:00) 对于每 ...
- Oracle查询某个日期的周一到周日SQL语句
Oracle查询某个日期的周一到周日SQL语句 SELECT TRUNC(to_date('2021-12-27','YYYY-MM-DD'),'IW')+(ROWNUM-1)*6 FROM dual ...
- oracle取本月最后一天是星期几_oracle SQL语句取本周本月本年的数据
--国内从周一到周日 国外是周日到周六 select to_char(sysdate-1,'D') from dual;--取国内的星期几 去掉减一取国外的星期 --取本周时间内的数据 select ...
- Oracle行转列、列转行的Sql语句总结
多行转字符串 这个比较简单,用||或concat函数可以实现 ? 1 2 3 select concat(id,username) str from app_user select id||usern ...
- 【oracle】查看数据库最近执行了哪些sql语句
前言 oracle 12.1.0.2.0 为了确定功能是否生效,需要查看数据库最近执行的sql语句,在里面找到想要的SQL语句 查看数据库最近执行了哪些sql语句 # 查看1小时内执行的sql语句,并 ...
最新文章
- Collections.addAll() 的使用 以及和list.addAll() 的区别
- .Net使用Redis详解之ServiceStack.Redis(七)
- [转]一步步搭建Ubuntu环境——dpkg 被中断,您必须手工运行 sudo dpkg --configure -a 解决此问题——安装Flashplayer出错 ------不错...
- centos 6.5 安装redis
- springcloud工作笔记107---Springboot中MyBatis 自动转换 map-underscore-to-camel-case=true 开启驼峰命名映射
- goto php 源码,GoToPHP
- 我们说的目标导向不是 “唯结果论”
- 三维重建——相机几何参数标定
- 2021-09-23
- CSV 导入SQL Server(bulk insert方式)
- 文章刚刚开源就被培训机构“BP”了,过于不要脸
- java面试自我介绍
- struct template 函数 特化
- 嗖嗖移动营业大厅(Java面向对象编程)
- [Filco]蓝牙连接键盘
- 18.8.17 考试总结
- 使用易路代理yiluproxy时,出现不是自己选定的城市该怎么办?
- k8s使用volume将ConfigMap作为文件或目录直接挂载_【大强哥-k8s从入门到放弃06】Secret详解...
- 转: Windows句柄数的限制
- PQ4R Smashin Scope
热门文章
- php 缩略图 等比例 不失真,PHP自适应宽高度等比例缩略图函数 (无裁切)
- python入门知识大全_python基础知识有哪些
- Git rebase 和 Git merge 的区别,你知道吗?
- python数据可视化源码_Python数据分析:基于Plotly的动态可视化绘图 随书源码[101MB]...
- 如何用HTML语言设计进度条,html5代码如何实现进度条功能?(示例)
- fread、fwrite、fopen函数的简单使用和open、read、write区别解析
- 极端原理_为极端而设计
- 计算机视觉笔记本推荐_视觉灵感:Mishti笔记本
- Android工程师转型Java后端开发之路,自己选的路,跪着也要走下去!
- 致毕业生:那些年我们错过的“BAT”