Ir para conteúdo

POWERED BY:

Arquivado

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

valeriabarros

DateDiff com time

Recommended Posts

Boa tarde.

 

Tenho o seguinte select:

 

 

select t.NmDescricao, mpo.NrDispositivo
from MapaPosicaoHorario mp, ParametroOperacional p
inner join MapaPosicao mpo on mpo.IdMapaPosicao = mpo.FkMapa
inner join FluxoNeutrons f on f.IdFluxo = mpo.FkFluxo
inner join TipoDispositivo t on t.IdTipoDispositivo = f.FkTipoDispositivo
where mp.DtIrradiacao = '23/12/2013' 

 

E preciso adicionar a seguinte cláusula:

 

and mp.HrInicio = ('09:00' - p.nmAlertaInicioIrradiacao);

 

Sei que não consigo executar assim, mas estou encontrando dificuldades em usar o DATEDIFF. Usei ele para transformar em minutos, porque preciso da comparação entre horas e minutos.

 

Alguém sabe alguma forma melhor de se fazer isso?

Pensei em algo do tipo:

 

 

select t.NmDescricao, mpo.NrDispositivo
from MapaPosicaoHorario mp, ParametroOperacional p
inner join MapaPosicao mpo on mpo.IdMapaPosicao = mpo.FkMapa
inner join FluxoNeutrons f on f.IdFluxo = mpo.FkFluxo
inner join TipoDispositivo t on t.IdTipoDispositivo = f.FkTipoDispositivo
where mp.DtIrradiacao = '23/12/2013' 
and DATEDIFF(MI, CONVERT(time, p.NmAlertaInicioIrradiacao), '12:00')/60 = mp.HrInicial 
--Mas assim não dá certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use

 

datediff(hour,campo1, campo2)

 

Converta os dois para time , fica mais ou menos assim

 

 

datediff(hour,convert(time,mp.HrInicio) , convert(time,p.nmAlertaInicioIrradiacao)))

Ou pode apelar...kkkkkkk

 

usando convert varchar e depois datetime, o 108 retorna apenas a hora, descartando a data

 

convert(datetime(convert(varchar,mp.HrInicio,108),108)

 

 

http://msdn.microsoft.com/pt-br/library/ms187928.aspx

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.