# Somar horas e minutos coluna Time(7)

• ### Pergunta

• Pessoal,

Estou quebrando a cabeça em um calculo de horas em um sistema que gerencia horas extras e faltas, tenho no banco salvo a quantidade de horas e minutos em uma coluna Time(7).

E estou usando a seguinte querye para fazer a somatória:

```SELECT        DP.TeacherHour.ClassificationID, DP.TeacherHour.Year, DP.TeacherHour.Month,
DP.TeacherHour.SubstituteBaseID, DP.TeacherHour.SubstituteID,
(SELECT [Professor] FROM [DP].[v_Teachers] WHERE cod_funcionario = DP.TeacherHour.SubstituteID) AS Teacher,
(SELECT Description FROM DP.TeacherBase WHERE TeacherBaseID = DP.TeacherHour.SubstituteBaseID )AS Base,
SUM(DP.TeacherHour.Classes) AS Classes,
(SELECT CASE
WHEN
SUM(DATEDIFF(MINUTE, '0:00:00', DP.TeacherHour.Intime)) IS NULL THEN  '0'
ELSE SUM(DATEDIFF(MINUTE, '0:00:00', DP.TeacherHour.Intime)) END ) /60 AS Intime,
--SUM(Dp.TeacherHour.Intime) AS inTime,
(SELECT code FROM [DP].[TeacherBasePay] WHERE TeacherBaseID = DP.TeacherHour.SubstituteBaseID AND TypeHourID = DP.TeacherHour.Type ) AS Verba,
DP.TeacherHour.Type
FROM            DP.TeacherHour INNER JOIN
DP.TeacherHourAproved ON DP.TeacherHour.SiteID = DP.TeacherHourAproved.SiteID AND DP.TeacherHour.ClassificationID = DP.TeacherHourAproved.ClassificationID AND
DP.TeacherHour.TeacherHourID = DP.TeacherHourAproved.TeacherHourID
WHERE        (DP.TeacherHourAproved.Aproved = 1)
GROUP BY DP.TeacherHour.ClassificationID, DP.TeacherHour.Year,
DP.TeacherHour.Month, DP.TeacherHour.SubstituteBaseID,  DP.TeacherHour.SubstituteID, DP.TeacherHour.Type
HAVING        (DP.TeacherHour.Year = 2019) AND (DP.TeacherHour.Month = 09) AND (DP.TeacherHour.Type = 2)
```

Desataco o calculo das horas:

``` (SELECT CASE
WHEN
SUM(DATEDIFF(MINUTE, '0:00:00', DP.TeacherHour.Intime)) IS NULL THEN  '0'
ELSE SUM(DATEDIFF(MINUTE, '0:00:00', DP.TeacherHour.Intime)) END ) /60 AS Intime,```

Esta calculando somente as horas e os minutos quebrados não está me trazendo, exemplo(58 horas e 30 minutos seria 58:30 ele esta me retornando apenas 58)

Devo estar fazendo algo errado no calculo ou na conversão, alguém tem alguma ideia onde estou errando?

Moizés Cerqueira | MCP / MCTS SQL SERVER

segunda-feira, 16 de setembro de 2019 18:24

### Respostas

• Deleted
• Marcado como Resposta segunda-feira, 16 de setembro de 2019 22:53
segunda-feira, 16 de setembro de 2019 18:49

### Todas as Respostas

• Deleted
• Marcado como Resposta segunda-feira, 16 de setembro de 2019 22:53
segunda-feira, 16 de setembro de 2019 18:49
• Usei detsa forma que vc disse e traz o resta da divisão em decimal mas vou tratar melhor no C#.

```  SUM(DATEDIFF(MINUTE, '0:00:00', DP.TeacherHour.Intime)) IS NULL THEN  ' '
ELSE SUM(DATEDIFF(MINUTE, '0:00:00', DP.TeacherHour.Intime))/60.0 END )  AS Intime,```