oracle怎么计算相邻两行时间差,表名WF_WORK计算dealwith的时间差,所有的,按主键wf_work_id排序

如题所述

从表中数据看,你这应该是一张文件流转表,你是想计算出文件流转中相邻节点的处理时间差对吗?如果是,建议:
1、在该表中增加一个字段,最好在插入数据前,即计算出时间差,存入该字段,这样检索、显示更为便捷,也把时间比较处理分散到每次插入操作中,不必集中计算,如果该表数据量较大,这样做优势明显。
2、如果一定要后期集中处理,可以使用存储过程来处理,使用游标循环(按主键排序),取相邻记录的时间差(dealwith为date类型时,相减可得时间差,单位为天),结果连同主键一起保存在其他表中。
3、在程序中处理,检索出记录(按主键排序),在while循环中,比较相邻记录的时间差,再显示出来。显然,这种办法每次打开页面都会重新计算,效率是最差的。
温馨提示:答案为网友推荐,仅供参考
相似回答