none
calculo de intervalo de tempo SQL RRS feed

  • Pergunta

  • Preciso fazer um calculo de intervalo de tempo no sql. Tais tempos estao em dd/mm/yyyy HH:mm e em campos serapados.

    Concatenei-os para deixar no mesmo padrão, porem agora preciso calcular o intervalo em  HH:mm deste intervalo. Ex: 

    Hora Inicial: 08/06/2017 10:00

    Hora Final: 08/06/2017 10:50

    Intervalo: 00:50

    Porem, se o tempo for 

    Hora Inicial: 08/06/2017 10:50

    Hora Final: 08/06/2017 11:00

    o intervalo fica : 01:50

    select 
    			   
    				     --Se o veículo nao estiver dado entrada, sera utilizado a data atual do sistema. 
    					 --Senao sera calculado com base na data e hora de entrada
    			   (case when b.datentport is null			
    			         then
    					 
    					           CONVERT(VARCHAR,
    									  DATEDIFF(hour, '08/06/2017 10:10', 
    													 '08/06/2017 11:00')) +':'+
    						       CONVERT(VARCHAR,
    									  DATEDIFF(minute, '08/06/2017 10:10', 
    														'08/06/2017 11:00') % 60 )
    					 
    					  end) as TempoViagem	   
    		  from TB_DANFE as a
    		  left join TB_MOVIMENTACAO_TEMPORARIA as b on a.CHANFE = b.CHANFE
    		  WHERE A.CNPEMI='17157082000509'
    		  AND A.DATENT='08/06/2017'
    		  and B.DATENTPORT IS NULL

    quinta-feira, 8 de junho de 2017 23:57

Respostas

  • Bom dia Nelson_lucas

    da uma olhada nesse Script

    DECLARE @HoraInicial VARCHAR(20) ='08/06/2017 10:50';
    DECLARE @HoraTErmino VARCHAR(20) ='08/06/2017 11:00';
    
    DECLARE @dataInicio DATETIME  =CAST(@HoraInicial AS DATETIME)
    DECLARE @dataTermino DATETIME  =CAST(@HoraTErmino AS DATETIME)
    
    
    
    
    
    SELECT CONVERT(CHAR(8), DATEADD(ss,DATEDIFF(ss, @dataInicio,@dataTermino),CAST(0 AS DATETIME)), 108) 
    
    
    Wesley Neves
    Brasilia-DF
    MTA-SQL Server
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"


    Wesley Neves

    sexta-feira, 9 de junho de 2017 11:36

Todas as Respostas

  • Deleted
    sexta-feira, 9 de junho de 2017 00:12
  • Bom dia Nelson_lucas

    da uma olhada nesse Script

    DECLARE @HoraInicial VARCHAR(20) ='08/06/2017 10:50';
    DECLARE @HoraTErmino VARCHAR(20) ='08/06/2017 11:00';
    
    DECLARE @dataInicio DATETIME  =CAST(@HoraInicial AS DATETIME)
    DECLARE @dataTermino DATETIME  =CAST(@HoraTErmino AS DATETIME)
    
    
    
    
    
    SELECT CONVERT(CHAR(8), DATEADD(ss,DATEDIFF(ss, @dataInicio,@dataTermino),CAST(0 AS DATETIME)), 108) 
    
    
    Wesley Neves
    Brasilia-DF
    MTA-SQL Server
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"


    Wesley Neves

    sexta-feira, 9 de junho de 2017 11:36
  • Bom dia,

    Por falta de retorno esta thread esta encerrada !

    Por gentileza, caso necessário abra uma nova thread.

    Atenciosamente,


    Guilherme Macedo S

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 12 de junho de 2017 13:19