在varchar上使用sum聚合函数

时间:2018-09-13 18:01:22

标签: sql sql-server

我有一个查询,该查询检索两个DateTime列(TimeOut和TimeIn)之间的差异以及项目名称(ItemName):

 SELECT ItemName,CONVERT(nvarchar,(TimeOut- TimeIn), 108) AS TimeTaken FROM TimeTable 

这给了我所有想要的值,但是我想按ItemName对其进行分组,这样我就可以得到普通项目花费的时间总和。

我尝试这样做,但是效果不佳。任何建议都会有所帮助,谢谢!

SELECT ItemName,sum(CONVERT(nvarchar,(TimeOut- TimeIn), 108)) AS TimeTaken FROM TimeTable group by ItemName

我不能求和varchar,但是我该怎么办?

我想要类似的东西

    Pen       08:00
    Pencil    13:00
    Marker    53:00

代替:

    Pen       04:00
    Pencil    05:00
    Pen       04:00
    Marker    13:00
    Marker    40:00
    Pencil    08:00

1 个答案:

答案 0 :(得分:1)

使用DATEDIFF函数

SELECT ItemName,sum( DATEDIFF(SECOND, TimeOut, TimeIn)) AS TimeTaken FROM TimeTable group by ItemName