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
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