使用暂停状态查找开始状态和结束状态之间的时间差

时间:2015-11-30 11:19:46

标签: sql asp.net sql-server vb.net

我在表格中有一组记录,该表格包含problemid, starttime, endtime, status

  • 如果问题开始,则状态变为He010
  • 如果问题结束,则状态变为He006
  • 如果问题暂停,则状态为Hs014
  • 如果未找到暂停,那么我将轻松获得starttimeendtime之间的总时间

像这样:

declare @StartDate datetime, @EndDate datetime

select @StartDate = '2015-11-02 17:17:38.000',@EndDate='2015-11-02 17:17:49.000'

select convert(varchar(5),DateDiff(s, @startDate, @EndDate)/3600) +':'+
       convert(varchar(5),DateDiff(s, @startDate, @EndDate)%3600/60) +':'+
       convert(varchar(5),(DateDiff(s, @startDate, @EndDate)%60)) as [hh:mm:ss]

但我无法得到暂停。

如果暂停,我想这样做,

Start + Pause then
pause + complete = total time

Table Data

我该怎么做呢 建议我找一个解决方案。

1 个答案:

答案 0 :(得分:0)

如果你想获得用户参加测试的总时间(HE010开始和结束时间之间的差异总和,因为不需要计算其他事件),那么你可以简单地做这样的事情:< / p>

SELECT SUM(DATEDIFF(SECOND, StartTime, FinishTime))
FROM tbl33997393
WHERE ProblemID = 'P1234' 
GROUP BY ProblemID