Usuário com melhor resposta
Diferença de data dos registros

Pergunta
-
Boa tarde,
Tenho uma tabela com os seguintes registros:
Senhas Data_Redirecionamento
0001 2019-05-30 08:51:00
0001 2019-05-30 11:11:00
0002 2019-06-11 17:22:00
0002 2019-06-13 13:21:00
0003 2019-06-10 15:59:00
0002 2019-06-13 14:00:00Quando a senha for a mesma preciso calcular a diferença em horas entre elas.
Respostas
-
Bom dia,
Adalmir, fiquei na dúvida sobre o resultado esperado mas experimente fazer uns testes mais ou menos dessa forma:
select Senhas, Data_Redirecionamento, lag(Data_Redirecionamento, 1) over(partition by Senhas order by Data_Redirecionamento) as Data_Redirecionamento_Ant, datediff (hour, lag(Data_Redirecionamento, 1) over(partition by Senhas order by Data_Redirecionamento), Data_Redirecionamento) as Diferenca from Tabela
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Adalmir sexta-feira, 14 de junho de 2019 14:31
-
Adalmir,
Veja se este exemplo que utiliza as funções analíticas First_Value() e Last_Value() podem te ajudar:
Create Table Senhas (CodigoSequencialSenha SmallInt Identity(1,1) Primary Key Not Null, CodigoCaractereSenha Char(4), DataCriacaoSenha DateTime) Go Insert Into Senhas (CodigoCaractereSenha, DataCriacaoSenha) Values ('0001','2019-05-30 08:51:00'), ('0001','2019-05-30 11:11:00'), ('0002','2019-06-11 17:22:00'), ('0002','2019-06-13 13:21:00'), ('0003','2019-06-10 15:59:00'), ('0002','2019-06-13 14:00:00') Go -- Realizando o cálculo da diferença -- Select Distinct CodigoCaractereSenha, DateDiff(Hour,First_Value(DataCriacaoSenha) Over (Partition By CodigoCaractereSenha Order By DataCriacaoSenha), Last_Value(DataCriacaoSenha) Over (Partition By CodigoCaractereSenha Order By CodigoCaractereSenha)) As Horas From Senhas Go
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Sugerido como Resposta IgorFKModerator sexta-feira, 14 de junho de 2019 12:15
- Marcado como Resposta Adalmir sexta-feira, 14 de junho de 2019 14:31
Todas as Respostas
-
Boa tarde,
Qual versão do SQL Server você está utilizando?
Como você espera que fique o resultado considerando esse exemplo que você postou?
Assinatura: http://www.imoveisemexposicao.com.br
-
-
Adalmir,
Veja se este exemplo que utiliza as funções analíticas First_Value() e Last_Value() podem te ajudar:
Create Table Senhas (CodigoSequencialSenha SmallInt Identity(1,1) Primary Key Not Null, CodigoCaractereSenha Char(4), DataCriacaoSenha DateTime) Go Insert Into Senhas (CodigoCaractereSenha, DataCriacaoSenha) Values ('0001','2019-05-30 08:51:00'), ('0001','2019-05-30 11:11:00'), ('0002','2019-06-11 17:22:00'), ('0002','2019-06-13 13:21:00'), ('0003','2019-06-10 15:59:00'), ('0002','2019-06-13 14:00:00') Go -- Realizando o cálculo da diferença -- Select Distinct CodigoCaractereSenha, DateDiff(Hour,First_Value(DataCriacaoSenha) Over (Partition By CodigoCaractereSenha Order By DataCriacaoSenha), Last_Value(DataCriacaoSenha) Over (Partition By CodigoCaractereSenha Order By CodigoCaractereSenha)) As Horas From Senhas Go
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Sugerido como Resposta IgorFKModerator sexta-feira, 14 de junho de 2019 12:15
- Marcado como Resposta Adalmir sexta-feira, 14 de junho de 2019 14:31
-
Bom dia,
Adalmir, fiquei na dúvida sobre o resultado esperado mas experimente fazer uns testes mais ou menos dessa forma:
select Senhas, Data_Redirecionamento, lag(Data_Redirecionamento, 1) over(partition by Senhas order by Data_Redirecionamento) as Data_Redirecionamento_Ant, datediff (hour, lag(Data_Redirecionamento, 1) over(partition by Senhas order by Data_Redirecionamento), Data_Redirecionamento) as Diferenca from Tabela
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Adalmir sexta-feira, 14 de junho de 2019 14:31
-