Shr*_*nil 1 sql sql-server sql-server-2008
我的表包括列的StartTime和EndTime与datetime数据类型.我使用此查询计算了这两列的持续时间:
SELECT
StartTime, EndTime,
DATEDIFF(s, StartTime, EndTime) AS duration
FROM tbl_record
WHERE StartTime >= @starttime AND StartTime < @endtime
ORDER BY StartTime DESC
Run Code Online (Sandbox Code Playgroud)
如何计算sql查询中的持续时间总和.这可以使用脚本完成,但如何在数据库查询中完成?我添加了类似的东西
SELECT SUM(duration) as total
Run Code Online (Sandbox Code Playgroud)
显示错误:
持续时间无效列
你不能使用这样的别名.您必须在总和中使用原始计算,并将其作为duration
SELECT SUM(datediff(s,StartTime,EndTime)) as duration
FROM tbl_record
where StartTime >= @starttime
and StartTime < @endtime
Run Code Online (Sandbox Code Playgroud)
或使用原始语句作为子选择,以便能够duration在外部选择中使用别名.
SELECT SUM(duration)
FROM (
SELECT datediff(s,StartTime,EndTime) as duration
FROM tbl_record
where StartTime >= @starttime
and StartTime < @endtime
) d
Run Code Online (Sandbox Code Playgroud)