Página 1 de 1
Enviado: Sex, 08 Jan 2010 1:08 pm
por mateustads
não deu certo esse seu esquema... =X
no fim das contas acabei bolando uma fuction pra isso... curta e funcional... dêem uma olhada.
Selecionar tudo
CREATE OR REPLACE function SEMASA.f_tempo_media ( day_fraction NUMBER)
return char
is
Years NUMBER;
months NUMBER;
days NUMBER;
hrs NUMBER;
mints NUMBER;
sec NUMBER;
begin
hrs :=trunc(day_fraction*24);
mints :=trunc((((day_fraction)*24)-(hrs))*60);
sec :=trunc(mod((day_fraction)*86400,60));
return(LPAD (hrs, 2, '0') ||':'|| LPAD (mints, 2, '0') ||':'|| LPAD (sec, 2, '0'));
end;
/
Enviado: Sex, 12 Mar 2010 3:20 pm
por huntersc
Caros,
Estava vendo os selects anteriores e não consegui achar um resultado para o meu.
Estou precisando encontrar um horario vago para agendar atendimento.
Minha aplicação existe uma tabela onde tem os horarios Agendados.
Data/Hora inicio (DHPREVISTA) Data/Hora Fim TEMPPRIVISTO.
Ex: Tenho Agendado horarios:
08:00 - 09:00 11:00 - 12:00
Preciso que o select retorne o horario q tem vago das 10 as 11
Tudo isso levando em consideração horario das 8 as 12 das 13:30 as 18:00 somente durante dia de semana e limite entre horarios de 60 minutos.
Agradeço a colaboração.
Obrigado.
Continuação
Enviado: Ter, 21 Dez 2010 8:47 am
por priajf
Ok
Peguei essa código
Selecionar tudo
SELECT TO_CHAR ( (datahorainicio + INTERVAL || ''' ||tempo || ''' || MINUTE), 'HH24:mi:ss')
FROM
(SELECT datahorainicio,
TO_CHAR ( ROUND ( ( (datahorafim - datahorainicio) * 1440) )) AS tempo
FROM atendimento);
POrem agora preciso fazer uma pesquisa com horarios que passaram de 12 min. Como faço. tempo nã oexiste na tabela.
Enviado: Ter, 21 Dez 2010 9:06 am
por SergioLBJr
Explica melhor a tua situação.
Tu tem uma tabela com hora inicial e final e quer ver o que passou de 12 min??
Re: Calculo de horas entre duas datas/horas
Enviado: Qui, 15 Set 2016 11:10 pm
por Victor_Ni
Saudações. há tempos vejo que existem muitos técnicos com a mesma questão, "como calcular o tempo entre duas datas?", somente para recapitular. não se trata de calcular o tempo entre uma data e a data atual (sysdate), pois seria simples utilizando da função timestamp do Oracle.
Sem saber mais detalhes, muito s perguntam: Pra saber o tempo decorrido entre datas?
existem vários motivos. ainda mais para um DBA, Monitoramento de processos seria a resposta mais adequada para esta questão.
Agora na pratica, aguem conseguiu com exatidão criar um script que funcione 100%?
Isto não e um desafio, eu so não quero ser repetitivo em opções de solução.
abraços.
Re: Calculo de horas entre duas datas/horas
Enviado: Sex, 16 Set 2016 7:42 am
por spernega
Bom dia Victor,
Tem uma função que eu criei e que está funcionando bem.
Pelo menos até agora não peguei nenhum erro.
Selecionar tudo
create or replace
function Fn_Intervalo_Tempo (P_Dt_Inic in date,
P_Dt_Fina in date) return varchar2 is
v_inte number;
v_Hora varchar2(200);
--
cursor c is
SELECT lpad( extract (day from numtodsinterval(v_inte, 'day')) ,5,' ') Qt_Dias,
lpad( extract (hour from numtodsinterval(v_inte, 'day')) ,2,'0') Qt_Horas,
lpad( extract (minute from numtodsinterval(v_inte, 'day' )) ,2,'0') Qt_Minutos,
lpad( extract (second from numtodsinterval(v_inte, 'day')) ,2,'0') Qt_Segundos
FROM dual;
c_r c%rowtype;
--
begin
--
v_inte := trunc((p_dt_Fina - p_dt_Inic),6);
dbms_output.put_line('v_inte '||to_char(v_inte));
--
open c;
fetch c into c_r;
if c%found then
--
dbms_output.put_line('c_r.Qt_Dias '||c_r.Qt_Dias);
dbms_output.put_line('c_r.Qt_Horas '||c_r.Qt_Horas);
dbms_output.put_line('c_r.Qt_Minutos '||c_r.Qt_Minutos);
dbms_output.put_line('c_r.Qt_Segundos '||lpad(trunc(c_r.Qt_Segundos),2,'0'));
--
v_hora := c_r.Qt_Dias||' '||c_r.Qt_Horas||':'||c_r.Qt_Minutos||':'||lpad(trunc(c_r.Qt_Segundos),2,'0');
end if;
close c;
return v_hora;
exception
when others then
return 'erro';
End;
/
Re: Calculo de horas entre duas datas/horas
Enviado: Sáb, 17 Set 2016 6:04 pm
por Victor_Ni
Boa tarde, spernega.
Sua função ficou boa. mais simples do que a solução que desenvolvi.
vou fazer mais teste nesta sua função.
Obrigado.
Re: Calculo de horas entre duas datas/horas
Enviado: Sáb, 17 Set 2016 7:04 pm
por spernega
Boa noite Victor,
Boa sorte, adapte o retorno do jeito que você precisar.
Em horas ou minutos, é só multiplicar as variáveis.