【发布时间】:2015-11-30 11:19:46
【问题描述】:
我在一个表中有一组记录,该表包含problemid, starttime, endtime, status。
- 如果问题开始,则状态变为
He010 - 如果问题结束则状态变为
He006 - 如果问题已暂停,则状态为
Hs014 - 如果没有找到暂停,那么我很容易得到
starttime和endtime之间的总时间
像这样:
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
我该怎么做, 建议我寻求解决方案。
【问题讨论】:
-
样本数据 + 预期结果集。
-
您到底想做什么?
If pause is present I want to do like this, Start + Pause then pause + complete = total time是什么意思 -
我想计算那个问题ID的总时间
-
看起来第二行是开始。这是否意味着它处于该状态3小时?当您要计算总时间时,是否意味着您要计算问题ID处于
He010,He006和Hs014状态的时间?? -
是的,第二行开始,第三行暂停,然后第四行开始,第五行完成,所以 15:35:10 + 0:0:14
标签: sql asp.net sql-server vb.net