我的表格包含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
如何计算sql查询中的持续时间总和。这可以使用脚本完成,但如何在数据库查询中完成?我添加了类似
的内容 SELECT SUM(duration) as total
显示错误:
持续时间无效列
答案 0 :(得分:5)
你不能使用这样的别名。您必须在总和中使用原始计算,并将其作为duration
SELECT SUM(datediff(s,StartTime,EndTime)) as duration
FROM tbl_record
where StartTime >= @starttime
and StartTime < @endtime
或使用原始语句作为子选择,以便能够在外部选择中使用duration
别名。
SELECT SUM(duration)
FROM (
SELECT datediff(s,StartTime,EndTime) as duration
FROM tbl_record
where StartTime >= @starttime
and StartTime < @endtime
) d