none
Diferença entre datas em mais de linha RRS feed

  • Pergunta

  • Boa tarde

    Podem me ajudar como fazer esta query, por favor?

    Eu preciso saber a diferença da datainclusao dos dois primeiro registros.

    Obrigado.

    StatusHistoricoId SolicitacaoId StatusId StatusDescricao DataInclusao
    4803 2917 15 Aguardando classificação 2011-10-24 11:02:27.720
    5441 2917 12 Em andamento 2011-10-24 20:07:52.590
    7437 2917 15 Aguardando classificação 2011-10-26 16:34:55.030
    7449 2917 12 Em andamento 2011-10-26 16:42:34.020
    7452 2917 15 Aguardando classificação 2011-10-26 16:45:28.977
    7457 2917 12 Em andamento 2011-10-26 16:47:02.380
    8593 2917 15 Aguardando classificação 2011-10-27 16:36:15.487
    8663 2917 12 Em andamento 2011-10-27 17:44:06.350
    23465 2917 15 Aguardando classificação 2011-11-19 21:03:45.547
    23468 2917 12 Em andamento 2011-11-19 21:06:11.093
    31013 2917 13 Concluído 2011-11-30 08:23:59.437

    sexta-feira, 21 de setembro de 2012 19:20

Respostas

  • Olá,

    Se entendi, você quer saber quanto tempo passou entre a inclusão dos registros, segue uma query de exemplo.

    create table #tmp(
    	id int primary key,
    	data datetime
    )
    
    insert into #tmp values(1,getdate());
    insert into #tmp values(2,getdate());
    insert into #tmp values(3,getdate());
    insert into #tmp values(4,getdate());
    
    
    with tmp_cte(RID,data)
    as
    (
    	select ROW_NUMBER() over(order by id) as RID, data
    	from #tmp
    )
    select a.RID,b.RID,a.data,b.data,DATEDIFF(SECOND,a.data,b.data) from tmp_cte a
    cross join tmp_cte b
    where a.RID = b.RID - 1
    

    • Marcado como Resposta Harley Araujo terça-feira, 25 de setembro de 2012 12:55
    terça-feira, 25 de setembro de 2012 01:29

Todas as Respostas

  • Boa tarde Fabio ! utilize a função DateDif:

     
    select DATEDIFF(HOUR, '2011-10-24 20:07:52.590', '2011-10-24 11:02:27.720') 


    Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    sexta-feira, 21 de setembro de 2012 20:28
  • Como assim "dos dois primeiro registros"?

    Explique melhor, por favor.


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    sexta-feira, 21 de setembro de 2012 22:33
    Moderador
  • Olá,

    Se entendi, você quer saber quanto tempo passou entre a inclusão dos registros, segue uma query de exemplo.

    create table #tmp(
    	id int primary key,
    	data datetime
    )
    
    insert into #tmp values(1,getdate());
    insert into #tmp values(2,getdate());
    insert into #tmp values(3,getdate());
    insert into #tmp values(4,getdate());
    
    
    with tmp_cte(RID,data)
    as
    (
    	select ROW_NUMBER() over(order by id) as RID, data
    	from #tmp
    )
    select a.RID,b.RID,a.data,b.data,DATEDIFF(SECOND,a.data,b.data) from tmp_cte a
    cross join tmp_cte b
    where a.RID = b.RID - 1
    

    • Marcado como Resposta Harley Araujo terça-feira, 25 de setembro de 2012 12:55
    terça-feira, 25 de setembro de 2012 01:29