PL SQL - Dúvida Query com range de datas
18/02/2016
0
Preciso construir uma query que traga os registros do horário operacional da empresa que vai das 06:00:00 às 05:59:59 do dia seguinte.
Não sei como posso fazer isso, basicamente tenho duas condições:
select * from tooldba.vw_sort_volume_conhec t where T.SO_VOLCON_RSCCDATADESCIDA between (to_date(sysdate, 'DD/MM/RRRR') + 360 / 1440)-1 and sysdate and NVL(T.ID_FILIAL_OPERACAO, 1) = 4
ou
select * from tooldba.vw_sort_volume_conhec t where T.SO_VOLCON_RSCCDATADESCIDA between (to_date(sysdate, 'DD/MM/RRRR') + 360 / 1440) and sysdate and NVL(T.ID_FILIAL_OPERACAO, 1) = 4
Sendo que a consulta irá rodar automaticamente, em um relatório.
Obrigadooo!
Daniel
Post mais votado
18/02/2016
não sei se entendi muito bem mas se for pesquisar colocando o horário seria algo +- assim :
select To_Char(data, 'HH24:MI:SS') Hora from tabela where To_Char(data, 'HH24:MI:SS') BETWEEN '06:00:00' and '05:59:59' order by To_Char(data, 'HH24:MI:SS');
Hector Figueroa
Mais Posts
18/02/2016
Daniel
O problema é o seguinte o range que preciso começa em um dia e termina em outro, por exemplo: começou HOJE às 06:00:00 e vai até AMANHÃ às 05:59:59.
Eu tinha tentado usar o seguinte:
select * from tooldba.vw_sort_volume_conhec t where T.SO_VOLCON_RSCCDATADESCIDA between to_date(sysdate, 'DD/MM/RRRR') and sysdate
Mas o problema que se eu executar essa consulta às 04:00:00 (por exemplo) esse lógica não funcionará
Muito obrigado pela ajuda cara!!!
18/02/2016
Jair N.
EX:
SELECT CAST(TO_CHAR(CAST('17-02-2016' AS DATE),'DD-MM-YYYY') || TO_CHAR(CAST('08:20:32' AS TIME), ' HH:MI:SS') AS TIMESTAMP) AS periodo FROM DUAL
UNION
SELECT CAST(TO_CHAR(CAST('18-02-2016' AS DATE),'DD-MM-YYYY') || TO_CHAR(CAST('11:23:54' AS TIME), ' HH:MI:SS') AS TIMESTAMP) AS periodo FROM DUAL
18/02/2016
Hector Figueroa
select * from tooldba.vw_sort_volume_conhec t where To_Char(T.SO_VOLCON_RSCCDATADESCIDA, 'DD/MM/RRRR HH24:MI:SS') between to_date(sysdate, 'DD/MM/RRRR HH24:MI:SS') - 1 and to_date(sysdate, 'DD/MM/RRRR HH24:MI:SS');
segue um exemplo, ve ae e me fala se funcionaria :)
select * from tooldba.vw_sort_volume_conhec t where To_Char(T.SO_VOLCON_RSCCDATADESCIDA, 'DD/MM/RRRR HH24:MI:SS') between to_date('17/01/2016 15:40:00', 'DD/MM/RRRR HH24:MI:SS') and to_date('18/01/2016 15:40:00', 'DD/MM/RRRR HH24:MI:SS');
18/02/2016
Daniel
Galera obrigado pela ajuda, mas não rolou!!!
Na minha ignorância e limitação de entendimento de SQL tentei o seguinte:
select case when T.SO_VOLCON_RSCCDATADESCIDA < (to_date(sysdate, 'DD/MM/RRRR') + 360 / 1440) then (select * from tooldba.vw_sort_volume_conhec t where T.SO_VOLCON_RSCCDATADESCIDA between (to_date(sysdate, 'DD/MM/RRRR') + 360 / 1440)-1 and sysdate and NVL(T.ID_FILIAL_OPERACAO, 1) = 4 order by T.SO_VOLCON_RSCCDATADESCIDA) else (select * from tooldba.vw_sort_volume_conhec t where T.SO_VOLCON_RSCCDATADESCIDA between (to_date(sysdate, 'DD/MM/RRRR') + 360 / 1440) and sysdate and NVL(T.ID_FILIAL_OPERACAO, 1) = 4 order by T.SO_VOLCON_RSCCDATADESCIDA) end from oldba.vw_sort_volume_conhec t
acho que observando essa minha tentativa vocês entendem melhor a minha necessidade.
Valeu Pessoal!!!
Clique aqui para fazer login e interagir na Comunidade :)