MSSQL查找持续时间长时间工作

时间:2014-04-29 14:16:14

标签: sql sql-server epoch

我需要能够找出每个CPU工作人员在一段时间内工作的时间。设置数据库的结构以记录每个工作单元的epoch_start_timeepoch_end_timecomputer_nameworker_number。我需要能够编写一个查询,让我选择@pQueryStartTime@pQueryEndTime并返回一个表格,其中包含每个工作人员(唯一computer_name + worker_number)的正常运行时间和查询停机时间范围。

我目前正在通过"采样"以高分辨率查看每个工作人员是否在任何特定时刻工作,但停机时间很少(工作时间为20小时至30秒),没有任何突出,或者如果确实如此,则会严重扭曲信息。

我对SQL并不擅长,所以如果有人能帮助我解释你如何从上述问题转向概念化解决方案,我真的很感激。另外,请告诉我是否还有其他任何我不清楚的事情。谢谢!

Source Table:
epoch_start_time(float), epoch_end_time(float), computer_name(varchar), worker_number(int)
0.0000,2.0000,bob,1
1.0000,3.0000,able,3
3.0000,4.0000,bob,1
4.0000,6.0000,bob,2

结果表:computer_nameworker_number的每个不同组合都有自己的行,其中seconds_working是每个工作单位在{{1}之间工作的时间总和}和@pQueryStartTime

如果我以@pQueryEndTime的0.000和@pQueryStartTime的5来喂它,你会得到:

@pQueryEndTime

我想我已经解决了:(没有足够的要点作为答案提交)

computer_name(varchar), worker_number(int), seconds_working(float), seconds_down(float)
bob,1,3.0000,2.0000
bob,2,1.0000,4.0000
able,3,2.0000,3.0000

0 个答案:

没有答案