Oracle计算时间差常用函数

发布时间:2020-07-08 19:25:32

来源:51CTO

阅读:877

作者:18620626259

Oracle计算时间差常用函数

两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒):

天:

ROUND(TO_NUMBER(END_DATE - START_DATE))

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60)

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60)

毫秒

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 1000)

十分钟前

select  sysdate -10/(60*24)   from dual

select

status,

continued_time, /*时间单位为秒*/

sid,

sql_id,

username,

FIRST_REFRESH_TIME,

LAST_REFRESH_TIME,

SQL_TEXT,

ERROR_NUMBER,

ERROR_MESSAGE

from

(

select

status,

ROUND(TO_NUMBER(LAST_REFRESH_TIME - FIRST_REFRESH_TIME) * 24 * 60 * 60 ) as continued_time , /*时间为秒*/

sid,

sql_id,

username,

FIRST_REFRESH_TIME,

LAST_REFRESH_TIME,

SQL_TEXT,

ERROR_NUMBER,

ERROR_MESSAGE,

row_number() OVER(PARTITION BY sql_id ORDER BY t.LAST_REFRESH_TIME desc) as row_flg

from

gv$sql_monitor t

----where t.LAST_REFRESH_TIME > sysdate -10/(60*24) ------采集当前时间10分钟内的

)

temp

where temp.row_flg=1

Oracle去除重复(某一列的值重复),取最新(日期字段最新)的一条数据

解决思路:用Oracle的row_number() over函数来解决该问题。

解决过程:

1.查看表中的重复记录

select

t.id,

t.device_id,

t.update_dtm,

t.test_result

from DEVICE_INFO_TBL t

2.标记重复的记录

select

t.id,

t.device_id,

t.update_dtm,

t.test_result,

row_number() OVER(PARTITION BY device_id ORDER BY t.update_dtm desc) as row_flg

from DEVICE_INFO_TBL t

3.过滤重复数据,取得最新的记录

select

temp.id,

temp.device_id,

temp.update_dtm,

temp.test_result

from (

select

t.id,

t.device_id,

t.update_dtm,

t.test_result,

row_number() OVER(PARTITION BY device_id ORDER BY t.update_dtm desc) as row_flg

from DEVICE_INFO_TBL t ) temp

where temp.row_flg  = '1'

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的).

与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码.

row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序).

rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内).

dense_rank()l是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的 .

lag(arg1,arg2,arg3):

arg1是从其他行返回的表达式

arg2是希望检索的当前行分区的偏移量。是一个正的偏移量,时一个往回检索以前的行的数目。

arg3是在arg2表示的数目超出了分组的范围时返回的值。

oracle数据库计算时间差,Oracle计算时间差常用函数相关推荐

  1. oracle连续周数,详细讲解Oracle数据库的“周数计算”

    详细讲解Oracle数据库的"周数计算"以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! --日期计算 ...

  2. oracle 怎么计算年数,详细讲解Oracle数据库的“周数计算”

    详细讲解Oracle数据库的"周数计算" 2008-03-18 eNet&Ciweek 2)iw的算法为星期一至星期日算一周,且每年的第一个星期一为第一周, 例如20050 ...

  3. 视频教程-oracle数据库快速入门-Oracle

    oracle数据库快速入门 十年项目开发经验,主要从事java相关的开发,熟悉各种mvc开发框架. 王振伟 ¥21.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 AP ...

  4. arcgis读取oracle数据库,arcgis连接Oracle数据库

    arcgis连接Oracle数据库 配置声明:本人的电脑是win10 64位,安装的Oracle是oracleR11gr2 64  arcgis版本位10.2 安装是在同一台电脑上. 一.首先是安装O ...

  5. 数据如何导入oracle数据库,如何用Oracle导入导出工具来实现Oracle数据库移植?

    Oracle数据库作为目前市场的主流数据库之一,许多应用都在其上进行开发,由于Oracle数据库更新换代的原因和不同的应用程序提供商,可能会造成在一个单位的应用中存在Oracle的几种版本,如Orac ...

  6. Oracle数据库教程(Oracle备份、恢复、升级、迁移)视频教程

    Oracle数据库教程(Oracle备份.恢复.升级.迁移)视频教程 风哥Oracle备份恢复与迁移升级专题包括:Oracle备份恢复基础.用户模式的备份恢复.RMAN备份恢复.Flashback闪回 ...

  7. oracle数据库基础测试,ORACLE数据库基础测试题oracle数据库复习题.docx

    <ORACLE数据库基础测试题oracle数据库复习题.docx>由会员分享,可在线阅读,更多相关<ORACLE数据库基础测试题oracle数据库复习题.docx(18页珍藏版)&g ...

  8. oracle中毒,oracle数据库中毒恢复 oracle数据库解密恢复 服务器中勒索病毒解密恢复.Hermes666...

    oracle数据库中毒恢复 oracle数据库解密恢复 服务器中勒索病毒解密恢复.Hermes666 客户名称 保密 数据类型 oracle 11G 数据容量 100 gb 故障类型 服务器中毒,文件 ...

  9. oracle 连接组件,[2021] node连接oracle数据库示例[使用oracle官方组件]

    [2021] node连接oracle数据库示例[使用oracle官方组件] node 连接 oracle 示例 本示例采用的 oracledb 和 instantclient-basic-windo ...

  10. oracle免费的环境,【Oracle数据库免费版】Oracle数据库官方下载 v11gR2 免费版-趣致软件园...

    Oracle数据库免费版是一款比较实用的数据库软件,内含强大的功能,支持对数据的完整管理,而且还能实现保存的持久性.Oracle数据库官方版采用了分布式的处理,支持各种数据库的运行,同时软件还能为大大 ...

最新文章

  1. Django模板系统和admin模块
  2. 功能很全的图书馆管理系统
  3. 【jquery模仿net控件】简单的dropdownlist与datalist
  4. ubuntu中解决无法调节屏幕亮度的问题
  5. linux phpize
  6. [react] 在React中如果去除生产环境上的sourcemap?
  7. python连接mysql代码_Python3连接MySQL(pymysql)转账代码
  8. 掌握这20个JS技巧,做一个不加班的前端人
  9. LeetCoed 5383. 给 N x 3 网格图涂色的方案数
  10. 响应式网站与自适应网站比较
  11. java mysql 周_java 和 mysql 获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)...
  12. JAVA基础知识点大全之一
  13. VS2017安装扩展模块
  14. 金盾播放器android安卓,(金盾高级视频加密系统跨平台播放器Android安卓安装步骤.doc...
  15. 运算放大器的关键指标详解三
  16. img图片实现垂直居中
  17. Contrastive Adaptation Network for Unsupervised Domain Adaptation
  18. Modularity(模块性)
  19. HyperLynx(十二)BoardSim和PCB板级仿真分析(三)
  20. python统计英文文章中单词出现的次数

热门文章

  1. 《2021-2022年中国国资云市场发展状况研究报告》发布 华云数据位居中国国资云市场领先者
  2. mysql 5.5 1067_MySQL 5.5 发生系统错误1067的解决办法
  3. 提取智慧树试卷_如何用搜题软件查找《智慧树(知到)》考试试题及答案?
  4. 新零售热潮不退天搜科技解析线下实体变革困局
  5. mysql:大于、等于、小于写法
  6. 视频画质可以提升吗?是什么在影响视频清晰度
  7. CodeForces 754D Fedor and coupons
  8. Flink中定时器的使用
  9. amd(超微半导体公司(英语:Advanced Micro Devices, Inc.,缩写:AMD))
  10. 2023银行春招笔试经验分享!