Использование агрегатной функции суммы в varchar

У меня есть запрос, который извлекает разницу между двумя столбцами 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
0
0
32
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

использовать функцию DATEDIFF

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

@Abadin Спасибо !!

user8205798 13.09.2018 20:21

Другие вопросы по теме