sql判断时间差值_Oracle判断某人员在某地是否有超过指定时间的停留
问
如何判断某个人某地停留是否超过30分钟呢?【sql建表语句和数据在文后】
自己编写遇到问题: 开始是取最大时间和最小时间的差值,大于指定的30min,但是可能存在
某人员先是00:00:45出现在A地,一会之后离开了,晚上23:23:59又出现在A地一会后又离开了....
①比如如下表中数据的李四出现在C地就是这种情况,这种就不符合条件;
②看图示,张三在A地时间连续且停留超过了30分钟,只有张三符合条件;
③王五出现的时间00:01:45; 14:01:45,23:01:45,时间间隔差距太大了,不符合;
连续1小时或者2小时可接受,比如00:01:45, 01:01:45,02:01:45;
答
with tmp as ( --分组汇总并获取时间间隔
select name,STATION,min(time) time1,min(time1) time2,min(time2) time3 from (SELECT name,station,time,
lead(time,1,null) over(partition by STATION order by time) time1,
lead(time,2,null) over(partition by STATION order by time) time2
FROM checktime_tb order by name,STATION)group by name,STATION),
tmp1 as( --获取每个时间间隔的时间差
select tmp.*,round((time3-time2)*24*60) ab,round((time2-time1)*24*60) bc,round((time3-time1)*24*60) ac from tmp)
select tmp1.*,CASE WHEN AB <=30 and BC<=30 THEN '符合' ELSE '不符合' END state from tmp1;
思路:采集一个人在某地的三个时间,AB端、BC端都在30分钟内就符合要求。
知识点:with语法
偏移函数 lag、lead
建表语句
对应表结构和数据_Oracle的
CREATE TABLE "TEST"."CHECKTIME_TB" ( "NAME" VARCHAR2(50 BYTE), "STATION" VARCHAR2(50 BYTE), "TIME" DATE)INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('张三', 'A地', TO_DATE('2018-08-10 00:09:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('张三', 'B地', TO_DATE('2018-08-10 06:09:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('张三', 'A地', TO_DATE('2018-08-10 00:16:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('张三', 'B地', TO_DATE('2018-08-10 06:19:40', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('张三', 'A地', TO_DATE('2018-08-10 00:40:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('李四', 'C地', TO_DATE('2018-08-10 00:00:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('李四', 'C地', TO_DATE('2018-08-10 23:23:59', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('李四', 'C地', TO_DATE('2018-08-10 23:24:00', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('王五', 'B地', TO_DATE('2018-08-10 00:01:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('王五', 'B地', TO_DATE('2018-08-10 14:01:45', 'SYYYY-MM-DD HH24:MI:SS'));INSERT INTO "TEST"."CHECKTIME_TB" VALUES ('王五', 'B地', TO_DATE('2018-08-10 23:01:45', 'SYYYY-MM-DD HH24:MI:SS'));
sql判断时间差值_Oracle判断某人员在某地是否有超过指定时间的停留相关推荐
- SQL 判断字段值是否有中文、英文、数字、提取中文、英文、数字
–SQL 判断字段值是否有中文 create function fun_getCN(@str nvarchar(4000)) returns nvarchar(4000) as begin decla ...
- oracle空值判断 =,Oracle,sql server的空值(null)判断
Oracle,sql server的空值(null)判断 sql server 替换null:isnull(arg,value) 如:select isnull(price,0.0) from ord ...
- 聚合函数的计算机控件,ACCESS VBA编程必须掌握的聚合函数(判断 表 值).doc
ACCESS VBA编程必须掌握的聚合函数(判断 表 值) VBA中的聚合函数及用法 --如何判断表中的值? *****常用域聚合函数***** 1.DCount(expr, domain, [cri ...
- 想要精通算法和SQL的成长之路 - 判断子序列问题
想要精通算法和SQL的成长之路 - 判断子序列问题 前言 一. 判断子序列 1.1 动态规划做法 1.2 双指针 二. 不同的子序列 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 判断子序 ...
- java 返回值判断_在Java中判断方法重载的条件除了参数外,还可以通过返回值类型判断。_学小易找答案...
[单选题]若int x;且有下面的程序片断,则输出结果是() . for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "** ...
- python 根据判断产生新列_pandas DataFrame 根据多列的值做判断,生成新的列值实例...
环境:Python3.6.4 + pandas 0.22 主要是DataFrame.apply函数的应用,如果设置axis参数为1则每次函数每次会取出DataFrame的一行来做处理,如果axis为1 ...
- html 判断整数,javascript如何判断值是否为整数?
javascript如何判断一个值是否为整数?下面本篇文章就来给大家介绍一下使用javascript判断一个值是否为整数的方法,希望对大家有所帮助. 方法1:使用取余运算符判断 任何整数都会被1整除, ...
- php 值是否在数组里面,php怎么判断某值在不在数组中
在php中可以通过in_array函数判断某值在不在数组中,in_array的作用就是用于搜索数组中是否存在指定的值,该函数的语法是"in_array(search,array,type)& ...
- 判断按键值_ALIENTEK 阿波罗 STM32F767 开发板资料连载第七章 按键输入实验
1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第七章 按键输入实验 上 ...
最新文章
- linux显示父目录,linux – 仅列出文件的公共父目录
- PHP rss聚合,利用PHP和AJAX创建RSS聚合器
- python参数检验框架_基于python的人员识别检测框架研究
- Echo:新生好看的一言网站源码
- python中MySQLdb模块用法实例
- phpredis报错信息:protocol error, got ‘o‘ as reply type byte解决方案
- PyTorch: 各种图像格式相互转化
- ADO.NET Entity Framework 学习(1)
- 在 WPF 程序中使用矢量图
- SLD 样式 之GeoServer中设计2.5维建筑物
- 声音加速_听,这是加速的声音
- python文件操作
- 从无到有构建计算机网络
- 客户上云究竟为了什么?
- 腾讯的职级系统——看清自己的职场宿命
- 《java程序设计基础》 抽象类
- vue里删除购物车商品(购物车功能六)
- 云计算奇妙学习之旅第一期:初识云计算
- 【系统分析师之路】系统分析师备考计划
- 2018年Android版本分布(市场占有率、市场份额)统计
热门文章
- python人工智能github的一些跑程序技巧(持续更新~)
- matlab期中考试卷,matlab期末考试试卷及答案.doc
- java awt 边距_Java Swing - 使用Line Border在TextArea上设置边距
- 求一个3*3矩阵两条对角线上元素之和(每个元素只加一次) C语言
- Python3小程序:把字符串转换成连续的UTF8编码(16位)
- 机器人与目标匹配问题及解决 虚拟动力学 纳什平衡 Q-Learning
- ROS入门笔记(十二):动作编程 (C++)
- linux同步多台机器的时间
- php持久对象,php-在理论中具有两个外来身份的持久对象
- java subset_Java TreeSet subSet()方法