Ir para conteúdo

Arquivado

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

ISREL LOUIS RAMOS

comando de data

Recommended Posts

Bom dia,

 

Preciso de ajudar para executar um comando.

 

Estou trabalhando com duas tabelas a CARREG_PRD e ORDEM_PRD.

Na CARREG_PRD eu tenho duas colunas a HR_ENTRADA e a HR_SAIDA, gostaria de diminuir o valor da saída menos a entrada, para eu saber o tempo da execução do serviço e ter esse registro em HH:MI

 

O campo é '05/09/2014 22:50:44' - '06/09/2014 00:57:14', quando eu utilizo a forma básica:

TO_DATE(A.HR_SAIDA) - TO_DATE(A.HR_ENTRADA) AS TEMPOCARREGAMENTO, ele me trás como registro o valor 2, e eu precisaria que trouxesse 02:06

 

Alguém poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Motta,

 

O type é date desses dois campos.

 

Li seu post e utilizei o comando: (select TO_CHAR(TO_DATE('01/01/2013 00:00:00','DD/MM/YYYY HH24:MI:SS') + (AVG(X))/(24*60*60),'HH24:MI:SS') S

from(select 24*60*60*(DTATE-DTDE) X from(select TO_DATE('13/06/2013 01:01:01','DD/MM/YYYY HH24:MI:SS') DTDE,TO_DATE('14/06/2013 01:02:01','DD/MM/YYYY HH24:MI:SS') DTATE from DUAL))).
Ele calculou o tempo, porém com a data fixa.
Eu queria fazer A.HR_SAIDA - A.HR_ENTRADA
Olha ai como ficou o meu comando, o que eu preciso mudar?
select A.NO_ORDEM_CAR AS ORDEMCARREGAMENTO,
       A.NO_PESAGEM AS NUMPESAGEM,
       C.DE_PRODUTO AS PRODUTO,
       A.CAMINHAO AS PLACA,
       A.HR_ENTRADA AS HORAENTRADABALANÇAINDUSTRIAL,
       A.DE_OBSERVACAO AS LOTE,
       A.QT_PESO1 AS TARA,
       A.QT_PESO2 AS BRUTO,
       A.QT_PESOLIQ AS LIQUIDO,
       A.HR_SAIDA AS HORASAIDABALANÇAINDUSTRIAL, 
       (select  TO_CHAR(TO_DATE('01/01/2013 00:00:00','DD/MM/YYYY HH24:MI:SS') + (AVG(X))/(24*60*60),'HH24:MI:SS') S
from(select 24*60*60*(DTATE-DTDE) X from(select TO_DATE('13/06/2013 01:01:01','DD/MM/YYYY HH24:MI:SS') DTDE,TO_DATE('14/06/2013 01:02:01','DD/MM/YYYY HH24:MI:SS') DTATE from DUAL))) AS TEMPOCARREGAMENTO,
      -- TO_DATE(A.HR_SAIDA) - TO_DATE(A.HR_ENTRADA) AS TEMPOCARREGAMENTOINDUSTRIAL,      
       A.REBOQUE,
       A.REBOQUE_2,
       A.REBOQUE_3,
       B.HR_CONFERENCIA,
       B.QT_PESOLIQ,
       A.CD_BAL_CARREG,
       A.FG_PESAG_ES,
       B.FG_PESO
  from CARREG_PRD A, ORDEM_PRD B, CAD_PRODUTO X

 where A.INSTANCIA = 'UISA'
   and C.CD_PRODUTO = A.CD_PRODUTO
   and A.CD_PRODUTO = '1'
   and B.INSTANCIA(+) = A.INSTANCIA
   and B.NO_PESAGEM(+) = A.NO_PESAGEM
   and A.DT_MOVIMENTO >= TO_DATE('06/09/2014','DD/MM/YYYY')
   and A.DT_MOVIMENTO <= TO_DATE('06/09/2014','DD/MM/YYYY')
   and A.INSTANCIA || A.NO_PESAGEM in
       (Select C.INSTANCIA || C.NO_PESAGEM
          from OUTR_PESAGENS_PRD C
         where C.INSTANCIA = A.INSTANCIA
           and C.NO_PESAGEM = A.NO_PESAGEM
           and ((C.CD_PRODUTO = '1')))
   and (A.FG_SORTEIO = 'S' or
       (A.NO_PESAGEM || A.INSTANCIA IN
       (Select D.NO_PESAGEM || D.INSTANCIA
            from OUTR_PESAGENS_CONF D
           where D.NO_PESAGEM = A.NO_PESAGEM
             and D.INSTANCIA = A.INSTANCIA)))
 order by A.DT_MOVIMENTO, A.NO_PESAGEM
 
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

No meu exemplo usei uma data f7xa apenas para demonstrar , troque as datas pelos seus campos , e não precisa de outro select (from dual) , basta a coluna calculada.

 

Estou num tablet e é difícil editar senão remontava o sql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Motta,

 

Não consegui evoluir nesse comando, eu até troquei o comando e fiz esse outro aqui,

 

Porém os resultados estão trazendo os valores :

10:0

10:0
10:0
10:0
0-24:-1440
0-24:-1440
0-24:-1440
0-24:-1440
0-24:-1440
O que é necessário fazer para ajustar?
select A.NO_ORDEM_CAR AS ORDEMCARREGAMENTO,
       A.NO_PESAGEM AS NUMPESAGEM,
       C.DE_PRODUTO AS PRODUTO,
       A.CAMINHAO AS PLACA,
       A.HR_ENTRADA AS HORAENTRADABALANÇAINDUSTRIAL,
       A.DE_OBSERVACAO AS LOTE,
       A.QT_PESO1 AS TARA,
       A.QT_PESO2 AS BRUTO,
       A.QT_PESOLIQ AS LIQUIDO,
       A.HR_SAIDA AS HORASAIDABALANÇAINDUSTRIAL, 
       --TO_DATE(A.HR_SAIDA) - TO_DATE(A.HR_ENTRADA) AS TEMPOCARREGAMENTOINDUSTRIAL, 
     TRIM(round(to_number(to_date(a.hr_saida,
                                            'DD/MM/YYYY HH24:MI:SS') -
                                    to_date(a.hr_entrada,
                                            'DD/MM/YYYY HH24:MI:SS'))) || '' ||
                    round(((to_number(to_date(a.hr_saida,
                                              'DD/MM/YYYY HH24:MI:SS') -
                                      to_date(a.hr_entrada,
                                              'DD/MM/YYYY HH24:MI:SS')) * 1440) - 1440) / 60) || ':' ||
                    round((to_number(to_date(a.hr_saida,
                                             'DD/MM/YYYY HH24:MI:SS') -
                                     to_date(a.hr_entrada,
                                             'DD/MM/YYYY HH24:MI:SS')) * 1440) - 1440) || '') AS TEMPOCARREGAMENTO,
       A.REBOQUE,
       A.REBOQUE_2,
       A.REBOQUE_3,
       B.HR_CONFERENCIA,
       B.QT_PESOLIQ,
       A.CD_BAL_CARREG,
       A.FG_PESAG_ES,
       B.FG_PESO
  from PIMSPRD.OUTR_PESAGENS A, PIMSPRD.OUTR_PESAGENS_CONF B, PIMSPRD.CAD_PRODUTO C

 where A.INSTANCIA = 'UISA'
   and C.CD_PRODUTO = A.CD_PRODUTO
   and A.CD_PRODUTO = '1'
   and B.INSTANCIA(+) = A.INSTANCIA
   and B.NO_PESAGEM(+) = A.NO_PESAGEM
   and A.DT_MOVIMENTO >= TO_DATE('06/09/2014','DD/MM/YYYY')
   and A.DT_MOVIMENTO <= TO_DATE('06/09/2014','DD/MM/YYYY')
   and A.INSTANCIA || A.NO_PESAGEM in
       (Select C.INSTANCIA || C.NO_PESAGEM
          from PIMSPRD.OUTR_PESAGENS_PRD C
         where C.INSTANCIA = A.INSTANCIA
           and C.NO_PESAGEM = A.NO_PESAGEM
           and ((C.CD_PRODUTO = '1')))
   and (A.FG_SORTEIO = 'S' or
       (A.NO_PESAGEM || A.INSTANCIA IN
       (Select D.NO_PESAGEM || D.INSTANCIA
            from PIMSPRD.OUTR_PESAGENS_CONF D
           where D.NO_PESAGEM = A.NO_PESAGEM
             and D.INSTANCIA = A.INSTANCIA)))
 order by A.DT_MOVIMENTO, A.NO_PESAGEM 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa,

 

Acabei mudando a consulta e consegui.

 (substr(to_char(abs(X.HORA_SAIDA_ASSARI-X.hora_chegada_industria)*24,'00D00000'),2,2)||':'||
   lpad(round(to_number(substr(to_char(abs(X.HORA_SAIDA_ASSARI-X.hora_chegada_industria)*24,'00D00000'),4,5))*60 
),2,'0'))  AS  TEMPO_TRAJETO_EMP_IND

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.