我正在查看一个数据库表,其中包含大约11PM至上午8点之间运行的一组任务的运行时间记录。一些任务在上午12点之前开始和结束。一些在12点以后开始和结束。其余的开始于12AM之前,12AM之后结束所以,它有点分散。获取与上次运行任务相对应的记录
每天,对应于当天运行的记录是附加到数据库表。在之后创建记录特定任务已完成运行。所以,1个记录= 1个特定任务的运行。
一些在表中的字段是任务名称,开始日期时间,结束日期,时间等
现在,我希望获取对应最后一天的运行每任务记录。所以,如果昨天晚上某个特定的任务跑了说,我不要求想从前天开始记录。另外,如果我在凌晨3点醒来,当一半的任务完成运行时,我只想要对应于当前运行的记录。
我该怎么办?
我到目前为止试过的东西:
一堆东西。我来到的关闭是通过检查开始日期和结束日期是否在当前日期的1天之内。但是,这也将考虑到昨天结束的任务。
基本上,我无法弄清楚逻辑,因为它涉及具有不同日期的任务。
下面是一些样本数据:
案例1:毕竟任务完成运行
TASK_NAME START_DTTM END_DTTM
TASK1 10/21/2013 11:21 PM 10/21/2013 11:58 PM
TASK2 10/21/2013 11:30 PM 10/22/2013 03:58 AM
TASK3 10/22/2013 12:33 AM 10/22/2013 07:58 AM
查询运行在10/22上午:昨天的任务跑。预期结果:所有任务。
案例2:任务没有运行昨日(比如表由END_DTTM降序排序)
TASK_NAME START_DTTM END_DTTM
TASK1 10/21/2013 11:21 PM 10/21/2013 11:58 PM
TASK2 10/21/2013 11:30 PM 10/22/2013 03:58 AM
TASK3 10/22/2013 12:33 AM 10/22/2013 07:58 AM
查询中对10/23晨跑。预期结果:所有任务(因为没有任务运行上10/22晚上& 10/23凌晨)
案例3:任务运行时(比如表由END_DTTM DESC排序):
TASK_NAME START_DTTM END_DTTM
TASK1 10/21/2013 11:21 PM 10/21/2013 11:58 PM
TASK2 10/21/2013 11:30 PM 10/22/2013 03:58 AM
TASK3 10/22/2013 12:33 AM 10/22/2013 07:58 AM
查询在10/22 3:00 AM运行。预期结果:TASK1
查询在10/22 4:00 AM运行。预期结果:TASK1,TASK2
PS:性能不是一个大问题,因为记录数量不是那么大。
请出示你的表模式和一些示例数据和预期的产出。 – OldProgrammer
@OldProgrammer:完成.. – tumchaaditya