Ah, quando se fala da função NEXT_DAY (que muito certamente vc VAI ter que 
usar na sua expressão /função de cálculo de dia da semana começando na 
segunda-feira) é praticamente um FAQ a questão de que ela pede como string o 
nome do dia da semana NA LINGUAGEM que a tua sessão estiver configurada, então 
como saber isso ? O truque , básico mas eficiente, é vc popular numa variável 
string o nome da semana de um dia que vc SABE que foi uma segunda-feira, tipo :
  
  x := to_char(to_date('31/12/2012', 'dd/mm/yyyy'),'DY');
  
  Aí vc usa X como o argumento string para a NEXT_DAY...

  []s
  
    Chiappa

--- Em oracle_br@yahoogrupos.com.br, "J. Laurindo Chiappa" <jlchiappa@...> 
escreveu
>
>   Ah sim, IW e WW é para número da semana no ano, para número da semana no 
> mês começando não no dia 01, mas num dia fixo(Segunda no seu caso) realmente 
> não há nada nativo... Porém, é muito Simples vc escrever uma função sua, é 
> basicamente achar a Segunda-feira imediatamente antes do dia 01 (ou esse dia 
> 01 mesmo se ele caiu na 2a feira) e depois ir somando 7 dias, veja em 
> http://www.lifeaftercoffee.com/2006/02/01/sql-find-the-week-number-in-a-month/
>  ....
> 
>   []s
> 
>    Chiappa
> 
> --- Em oracle_br@yahoogrupos.com.br, Emerson Sanches <emerson.sanches@> 
> escreveu
> >
> > Então pessoal, a função IW ou WW eu já conheço, ela retorna a semana do
> > ano, por exemplo:
> > 
> > 01/01/2013 é a semana 01 de 2013
> > 25/01/2013 é a semana 04 de 2013
> > 28/02/2013 é a semana 09 de 2013
> > 
> > o que estou querendo é uma função que retorne a semana do MES, por exemplo
> > 
> > 01/02/2013 é a semana 01 de fevereiro 2013
> > 28/02/2013 é a semana 04 de fevereiro de 2013
> > 
> > A função "W" funciona direitinho o problema e o seguinte:
> > 01/02/2013 caiu numa sexta feira, então a função só "muda" a semana da data
> > na próxima sexta feira, ex:
> > 
> > 01/02/2013 --> semana 01 --> sexta feira
> > 03/02/2013 --> semana 01 --> domingo
> > 07/02/2013 --> semana 01 --> quinta feira
> > 08/02/2013 --> semana 02 --> sexta feira
> > 
> > Repararem, a semana só muda de 1 para 2 na quarta feira, ou seja 7 dias
> > apos o inicio do mês  Isto esta correto, mas estou precisando de
> > uma função que retorne assim:
> > 
> > 01/02/2013 --> semana 01 --> sexta feira
> > 03/02/2013 --> semana 02 --> domingo
> > 07/02/2013 --> semana 02 --> quinta feira
> > 08/02/2013 --> semana 02 --> sexta feira
> > 10/02/2013 --> semana 03 --> domingo
> > 
> > A função deveria fazer a "virada" da semana todo domingo e não 7,14,21,28
> > dias após o inicio do mês.
> > 
> > Obrigado pela ajuda.
> > 
> > 
> > 
> > 
> > Emerson Sanches
> > Analista de Sistemas
> > 
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>


Responder a