Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcello Cruz

Select em registros das últimas 8 horas

Recommended Posts

Turma,

 

tenho uma tabela onde vários registros são feitos durante o dia, em 24 horas. Em média 1500 unidades, cada uma quando registrada recebe no campo ProcessDate, a data e a hora que foi gravado na base. Como posso fazer um select para trazer o que foi produzido nas últimas 8 horas?

 

ProcessDate |

2012-06-04 09:36:15.000 |

 

Obrigado.

 

mCruz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em Oracle subtrair duas datas (DATETIME) gera uma diferença em dias ou fração, e SYSDATE é uma função que retorna a hora corrente.

 

select *
from tabela 
where (sysdate - tabela.data) > (8/24)

 

Veja se algo parecido funciona para SqlServer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente datediff:

 

select * from tabela where datediff(hh, getdate(), Processdate) < 8

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em Oracle subtrair duas datas (DATETIME) gera uma diferença em dias ou fração, e SYSDATE é uma função que retorna a hora corrente.

 

select *
from tabela 
where (sysdate - tabela.data) > (8/24)

 

Veja se algo parecido funciona para SqlServer.

 

Motta,

 

obrigado. Mas não funcionou. Estou tentando de várias formas, mas os resultados até agora não são os que espero.

 

Valeu!

 

mCruz

 

tente datediff:

 

select * from tabela where datediff(hh, getdate(), Processdate) < 8

 

 

Fernando C, nesse caso ele trás todos os registros de ontem pra trás. Não só os das últimas 8 horas.

Eu já tinha tentado dessa forma também.

 

Ficou assim numa tabela de teste que tenho

 

select * from tb_DataTeste where datediff(hh, getdate(), DATA_TESTE) < 8

 

Obrigado.

 

mCruz

Compartilhar este post


Link para o post
Compartilhar em outros sites

select * from tabela where datediff(hour, getdate(), Processdate) < 8

 

Fonte

Compartilhar este post


Link para o post
Compartilhar em outros sites
nesse caso ele traz todos os registros de ontem pra trás. Não só os das últimas 8 horas.
verdade; não tinha testado.. mas então agora tentei invertendo os argumentos e parece q deu certo; veja ai:

select * from tbteste where datediff(hh, processdate, getdate()) <8 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.