SQL Server选择两个日期之间的差异

She*_*hab 0 sql sql-server-2008

在此输入图像描述 亲爱,

我想在DATESTAMP列中两个日期之间的两个日期之间只有"打开"和"状态更改".我写了这个查询,但我得到了null和错误消息

declare @StartDate datetime, @EndDate datetime
set @StartDate = (Select Datestamp from ACTIVITYM1 where TYPE='Open')
set @EndDate = (Select Datestamp from ACTIVITYM1 where TYPE='Status Change')
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]
from ACTIVITYM1
Run Code Online (Sandbox Code Playgroud)

以下是我得到的错误 在此输入图像描述

小智 5

查看错误消息:"子查询返回的值超过1 ...".您只需要选择一行,例如:

set @StartDate = (Select Datestamp from ACTIVITYM1 where TYPE='Open' AND THENUMBER = '001A1419')

或者为你的查询设置一个限制......