none
Somar Horas SQL RRS feed

  • Pergunta

  • Ola Pessoal Gostaria de Saber como faço para Somar horas no SQL 2014

    Estou usando esse expressão e esta Tando errado  

    Estou colocando os campos abaixo.

    select sum(Horainicio + Horafim) as Totalgeral from Horas

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

    terça-feira, 19 de maio de 2015 13:14

Todas as Respostas

  • Bom dia,

    Você quer obter a soma das duas colunas ou a soma da diferença entre Horafim e Horainicio?

    O resultado pode ser igual ou superior a 24 horas? Se pode, como ficaria o resultado?


    Assinatura: http://www.imoveisemexposicao.com.br

    terça-feira, 19 de maio de 2015 13:35
  • Ivanilsonsk7,

    Então, de forma direta você não vai conseguir fazer este tipo de cálculo pois esta trabalhando com o tipo de dados Time, e o mesmo não permite conversão explicita para Int para que o SQL Server consiga realizar o cálculo.

    Veja se este exemplo pode te ajudar:

    declare @t table (hora char(8))
    insert into @t values ('15:22:43')
    insert into @t values ('17:22:41')
    
    ;with valores (hora) as (
     select CAST(hora as time) from @t),
     totalsegundos (segundos) as (
     
    select sum(DATEDIFF(ss,'00:00:00',hora)) from valores), 
    resultados as (
    select
     (segundos / 3600) as horas,
     (segundos % 3600) / 60 as minutos,
     (segundos % 3600) % 60 as segundos
    from totalsegundos)
    select
     RIGHT('0'+CAST(horas as varchar(2)),2) + ':' +
     RIGHT('0'+CAST(minutos as varchar(2)),2) + ':' +
     RIGHT('0'+CAST(segundos as varchar(2)),2) As Total
    from resultados


    Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 19 de maio de 2015 13:41