Alguém poderia me ajudar a arrumar essa consulta para intervalos de datas? no formato timestamp? pois estou com problema de converter assim do jeito que está para string… às vezes vem a data, mas se a data final for menor (no sentido de dia) não traz nada…
SELECT id_fuel_level_input, id_fuel_consumption, id_vehicle_speed, id_engine_rpm, id_ult_mensagem, tb_telemetria.cod_dispositivo FROM tb_telemetria, tb_usuario, tb_veiculo
WHERE
(CASE WHEN id_ult_mensagem = 'meio'
THEN to_char( dt_hora_dispositivo, 'DD/MM/YYYY') BETWEEN ('08/10/2014') AND ('08/10/2014')
AND to_char( dt_hora_dispositivo, 'HH24:MI') BETWEEN ('09:00') AND ('10:17')
ELSE to_char( dt_hora_sistema, 'DD/MM/YYYY') BETWEEN ('08/10/2014') AND ('08/10/2014')
AND to_char( dt_hora_sistema, 'HH24:MI') BETWEEN ('09:00') AND ('10:17')
END)
AND tb_usuario.cod_usuario = tb_telemetria.cod_usuario
AND tb_usuario.cod_usuario = tb_veiculo.cod_usuario
AND tb_veiculo.num_chassi = '9BGRP48F0EG236318'
AND tb_usuario.desc_login = 'ped6'
AND id_ult_mensagem IN ('GTIGN','GTOBD','GTIGF')
ORDER BY tb_telemetria.dt_hora_sistema
Se eu colocar a data final como 07/10/2014, não retorna, mas se deixo a do dia 08/10/2014 ele retorna… então pensei em consultar como timestamp mesmo, juntando data hora = 08/10/2014 09:00 às 07/10/2014 10:17
mas sou ruim demais com bd, e não acertei a sintaxe disso…
Outra coisa… precisava dar um apelido para este case, para pegar a data do sistema, quando vier sistema e data do dispositivo quando vier data do dispositivo