Somar Campos de Time(7) SQL
18/05/2015
0
e colocar essa foma no GridView [img]http://arquivo.devmedia.com.br/forum/imagem/419440-20150518-174733.jpg[/img]
Ivanilson Almeida
Post mais votado
19/05/2015
A ideia é converter tudo para segundos, somar em segundos e "re-converter" para a picture "hh:mm:ss".
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
Mais Posts
18/05/2015
Marcos P
Qual a versão do Sql Server ?
No seu exemplo a ideia é somar os valores da coluna "Total" ?
18/05/2015
Ivanilson Almeida
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
19/05/2015
Ivanilson Almeida
Desculpa pelo incomodo Obrigado
19/05/2015
Marcos P
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...
19/05/2015
Ivanilson Almeida
19/05/2015
Ivanilson Almeida
ex: um registro tem mais de 24:00 tipo ele tem 36:00 horas como fazer para visualizar ?
19/05/2015
Marcos P
19/05/2015
Marcos P
Para trabalhar com horas ilimitadas, faça :
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...
19/05/2015
Ivanilson Almeida
se não for pedir muito Teria como mandar um exemplo ?
19/05/2015
Marcos P
19/05/2015
Ivanilson Almeida
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)
19/05/2015
Marcos P
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 !
19/05/2015
Ivanilson Almeida
Provérbios 3:27
Clique aqui para fazer login e interagir na Comunidade :)