Ir para conteúdo

Arquivado

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

RTRENNEPOHL

Operações Aritmeticas com dia util

Recommended Posts

OLá, Qual o tipo de operação que você precisa? Como deseja trabalhar com as datas? Abraços, http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Preciso somar 1 dia em uma determinada data de entrega, mas posso fazer isso somente para dias uteis...Ex: 24/02/2006 é sexta-feira, somando 01 dia deveria cair na srgunda-feira. Tentei dessa forma Where (Weekday(Date)<>0 and Weekday(Date)<>6), mas dá erro de sintaxe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK! Vamos lá. Dentro do Oracle, execute.

 

select to_char(sysdate,'DD-MM-YYYY HH24:MI:SS') from dual;

 

Ele irá mostrar a data Atual, agora se fizermos isso:

 

select to_char(sysdate+1,'DD-MM-YYYY HH24:MI:SS') from dual;

 

Irá mostrar a próxima data, "o dia seguinte", agora você terá que fazer um bloco PL/SQL que faça esses tratamentos de datas para os dias úteis.

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK! Vamos lá. Dentro do Oracle, execute. select to_char(sysdate,'DD-MM-YYYY HH24:MI:SS') from dual; Ele irá mostrar a data Atual, agora se fizermos isso: select to_char(sysdate+1,'DD-MM-YYYY HH24:MI:SS') from dual; Irá mostrar a próxima data, "o dia seguinte", agora você terá que fazer um bloco PL/SQL que faça esses tratamentos de datas para os dias úteis. Abraços, http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

OK! Vamos lá. Dentro do Oracle, execute. select to_char(sysdate,'DD-MM-YYYY HH24:MI:SS') from dual; Ele irá mostrar a data Atual, agora se fizermos isso: select to_char(sysdate+1,'DD-MM-YYYY HH24:MI:SS') from dual; Irá mostrar a próxima data, "o dia seguinte", agora você terá que fazer um bloco PL/SQL que faça esses tratamentos de datas para os dias úteis. Abraços, http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Será que não tem uma forma mais simples? uma função que retorna dias da semana?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta,

 

Copiei o que você escreveu no outro fórum, só para ajudar as futuras dúvidas do assunto:

 

segue uma que fiz parecido como que você quer .. FUNCTION ULTIMO_DIA_UTIL ( pDtBase in date) RETURN date IS -- -- Calcula o último dia útil de um mês -- vdata date; vb_fim boolean; function feriado(d in date) return boolean is vn number(1); begin Select Sign(Count(*)) Into vn From feriado Where data_feriado = vdata; Return (vn = 1); end; BEGIN vb_fim := False; vdata := Last_day(Trunc(pDtbase)); WHILE not (vb_fim) LOOP vb_fim := (to_char(vdata,'d') not in ('1','7') /*Sab/Dom*/ or feriado(vdata)); if not (vb_fim) then vdata := vdata - 1; end if; END LOOP; RETURN vdata; EXCEPTION WHEN others THEN raise; END;________________________ []'s Motta

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

teria de ser adaptada pelo que o RTRENNEPOHL (isto é um anagrama??) quer , mas dá para ter ideia do necessário.

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.