Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 520236
            [titulo] => Somar Campos de Time(7) SQL
            [dataCadastro] => DateTime Object
                (
                    [date] => 2015-05-19 10:08:03
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 378439
            [status] => A
            [isExample] => 
            [NomeUsuario] => Marcos P
            [Apelido] => 
            [Foto] => 378439_20140801115452.png
            [Conteudo] => Ivanilson,

A ideia é converter tudo para segundos, somar em segundos e "re-converter" para a picture "hh:mm:ss".
[code]
declare @T int

set @T = (SELECT sum(DATEPART(SECOND, [Total]) +
(DATEPART(MINUTE, [Total])* 60)+
(DATEPART(HOUR, [Total]))*3600) as 'TempoSegundos'
FROM Tabela)

SELECT CONVERT(varchar, DATEADD(ms, @T * 1000, 0), 114)
[/code]
Preparei um exemplo no [url:descricao=Fiddle]http://sqlfiddle.com/#!6/5fbe1[/url].

Qualquer dúvida, é só perguntar... ) )

Somar Campos de Time(7) SQL

Ivanilson Almeida
   - 18 mai 2015

Boa tarde Gostaria de saber como somar Colunas no SQL que o tipo de Dados são (Time (7))
e colocar essa foma no GridView Clique na imagem para abrir em uma nova janela

Post mais votado

Marcos P
   - 19 mai 2015

Ivanilson,

A ideia é converter tudo para segundos, somar em segundos e "re-converter" para a picture "hh:mm:ss".
#Código
declare @T int

set @T = (SELECT sum(DATEPART(SECOND, [Total]) +
(DATEPART(MINUTE, [Total])* 60)+
(DATEPART(HOUR, [Total]))*3600) as 'TempoSegundos'
FROM Tabela)

SELECT CONVERT(varchar, DATEADD(ms, @T * 1000, 0), 114)

Preparei um exemplo no Fiddle.

Qualquer dúvida, é só perguntar...

Marcos P
   - 18 mai 2015

Quais as colunas e os tipos de dados envolvidos ?

Qual a versão do Sql Server ?

No seu exemplo a ideia é somar os valores da coluna "Total" ?

Ivanilson Almeida
   - 18 mai 2015

Id int
Registro int
Horainicio time(7)
Horafim time(7)
Total time(7)
Data datetime2(7)
Motivo nvarchar(MAX)

SQL/2014

Peço desculpa pelo minha Falta de atenção é a primeira vez que uso um Fórum

Ivanilson Almeida
   - 19 mai 2015

Marcos valeu pela dedicação agora como eu faço para colocar isso no GridView a linguagem é C# estou colocando na plataforma asp.net
Desculpa pelo incomodo Obrigado

Marcos P
   - 19 mai 2015

Como seu post original tinha a TAG ( sql server ), vim lhe ajudar por conta disso.

Na parte de programação não consigo te auxiliar, mas, pelo menos, você já sabe como fazer a query no banco de dados.

Tente mudar a TAG do post para alguma linguagem do forum ou abrir um novo tópico nesse sentido...

Ivanilson Almeida
   - 19 mai 2015

Obrigado Mesmo Pela sua atenção Ajudou muito mesmo

Ivanilson Almeida
   - 19 mai 2015

Marcos Uma pergunta e quando passa de 24:00 como que faz ?
ex: um registro tem mais de 24:00 tipo ele tem 36:00 horas como fazer para visualizar ?

Marcos P
   - 19 mai 2015

A query acumula a quantidade no formato "hh:mm:ss"... no caso de uma quantidade de horas superior ao 24, a rotina incrementa a hora normalmente : 25, 26, 27...

Ivanilson Almeida
   - 19 mai 2015

Poderia mandar um exemplo: ?
Por favor:

Marcos P
   - 19 mai 2015

Cometi um erro... o código anterior era limitado as 24 horas do dia !

Para trabalhar com horas ilimitadas, faça :
#Código
declare @T int
declare @seg decimal(18,3), @min int, @hor int

set @T = (SELECT sum(DATEPART(SECOND, [Total]) +
(DATEPART(MINUTE, [Total])* 60)+
(DATEPART(HOUR, [Total]))*3600) as 'TempoSegundos'
FROM Tabela)

set @hor = convert(int, @T /60 / 60)
set @min = convert(int, (@T / 60) - (@hor * 60 ))
set @seg = @T % 60

select convert(varchar(9), convert(int, @hor)) + ':' +
right('00' + convert(varchar(2), convert(int, @min)), 2) + ':' +
right('00' + convert(varchar(6), @seg), 6)


Coloquei novos registros no Fiddle para você testar...

Ivanilson Almeida
   - 19 mai 2015

Marcos Agora sim Deu Certo Só Mais uma Duvida Como eu faço para Relacionar esse comando com outra tabela tipo a onde tem os nomes dos funcionários ?

se não for pedir muito Teria como mandar um exemplo ?

Marcos P
   - 19 mai 2015

Qual a estrutura das tabelas envolvidas e qual a chave que relaciona os registros entres as tabelas ?

Ivanilson Almeida
   - 19 mai 2015

è a Tabela [Ficha de registro]

Registro int
Nome nvarchar(100)

e outra é a tabela hora

Id int
Registro int
Horainicio time(7)
Horafim time(7)
Total time(7)
Data datetime2(7)
Motivo nvarchar(MAX)

Ivanilson Almeida
   - 19 mai 2015

A chave é o Registro

Marcos P
   - 19 mai 2015

Assumindo que você quer relacionar as ocorrências da tabela "Hora" com os nomes dos sujeitos, fica :
#Código
select hor.Registro, fic.Nome, hor.Horainicio, hor.Horafim, hor.Total, hor.Data, hor.Motivo
from hora hor inner join ficha fic on ( hor.registro = fic.registro )

Registros na tabela "Hora" sem o correspondente nome na tabela "Ficha", não serão selecionados !

Ivanilson Almeida
   - 19 mai 2015

Obrigado Marcos Pela sua ajuda Só tenho que Agradecer Conseguir Resolver um problema com a sua ajuda Obrigado mesmo Que Jeová venha De Ajudar muito em sua caminhada

Provérbios 3:27

Ivanilson Almeida
   - 11 jun 2015

Bom Dia Gostaria de Saber como Faso para Somar Essas Horas e colocar Isso Na tabela de 100% Obrigado Pela atenção

Registro int
Hora_1 time(7)
Hora_2 time(7)
Hora_3 time(7)
Hora_4 time(7)
Hora_5 time(7)
Hora_6 time(7)
Data datetime
Hora_extra_100 time(7)

Marcos P
   - 11 jun 2015

Você deseja somar todas as colunas Hora_1, Hora_2... da tabela

ou

deseja somar essas sete colunas ( time ) para cada uma das linhas da tabela ?

Ivanilson Almeida
   - 11 jun 2015

Todas Horas

Marcos P
   - 11 jun 2015


Citação:

Todas Horas


Totalizando as colunas ou somando todas de uma linha ?

Ivanilson Almeida
   - 11 jun 2015

Todas de uma Linha Ex: para saber o quando de Extra o cara Fez Teria como ?