在虚拟数据中,您可以看到有两列Task_Completion和Time_stamp.there是一个java调度程序,只要任务完成就会运行,例如,调度程序在15-FEB-2016上运行5次,在17-FEB上运行只有一次所以我想要一个从给定列time_stamp计算start_time和end_time的查询
Task_Completion Time_stamp
true 15-FEB-16 11.37.56.013000000 AM
true 15-FEB-16 11.42.55.593000000 AM
true 15-FEB-16 11.47.48.970000000 AM
true 15-FEB-16 12.21.57.587000000 PM
true 15-FEB-16 12.26.55.767000000 PM
true 17-FEB-16 10.24.03.320000000 PM
true 17-FEB-16 10.44.03.320000000 PM
true 18-FEB-16 10.19.03.333000000 PM
true 18-FEB-16 10.23.03.333000000 PM
ture 18-FEB-16 10.55.03.333000000 PM
所以输出必须像
start_time end_time
15-FEB-16 11.37.56.013000000 AM 15-FEB-16 11.47.48.970000000 AM
15-FEB-16 12.21.57.587000000 PM 15-FEB-16 12.26.55.767000000 PM
17-FEB-16 10.21.33.320000000 PM 17-FEB-16 10.26.33.320000000 PM
17-FEB-16 10.41.33.320000000 PM 17-FEB-16 10.46.33.320000000 PM
18-FEB-16 10.19.03.333000000 PM 18-FEB-16 10.23.03.333000000 PM
18-FEB-16 10.52.33.333000000 PM 18-FEB-16 10.57.33.333000000 PM
如果 time_stamp 中存在0-5分钟的差距,例如 15-Feb ,那么 start_time 将 11.37.56.013000000 和 end_time 将 11.47.48.970000000 但是如果没有,那么再次检查是否有任何计划在那天运行,如在 15-Feb 12.21.57.587000000(start_time)和 12.26.55.767000000(end_time)
但是,如果计划在该日期与下一个计划的时间间隔超过5分钟运行,那么查询必须返回硬编码值 ,例如< / EM> 17-FEB-16 调度程序运行两次 10.24.03.320000000 PM 和 10.44.03.320000000 PM 因此他们的差距超过5分钟然后它必须返回输出2次,因为时间间隔超过5分钟。在那种情况下,将start_time添加2.30分钟,将2.30分钟添加到修复的end_time(硬编码) 喜欢 17-FEB-16 10.21.33.320000000 PM(开始时间), 17-FEB-16 10.26.33.320000000 PM(end_time) 和 17 -FEB-16 10.41.33.320000000 PM(开始时间),17-FEB-16 10.46.33.320000000 PM(end_time),此条件必须适用于所有日期。
同样,在18日,计划运行 3次,因此它将计为2运行,即10.19.03到10.23.03,下一个10.52.33到10.57。 33(2.30min-start_time和2.30min + end_time)。
答案 0 :(得分:0)
ViewController1