Opa, blz ? Então, é totalmente possível sim, e tem trocentas maneiras de fazer 
: pode fazer com artimética de datas (ie, ver se o valor da coluna DATE vc já 
passou exatamente um múltiplo de 7 dias de um dia no passado que foi 5ª feira), 
pode usar uma expressão com uma das n+1! funções que calculam número do dia da 
semana e/ou extraem o nome do dia da semana, á sua vontade...
 Eu acho mais simples usar uma expressão com uma das funções (e ** Certamente 
** vc vai receber outras sugestões nesse sentido, isso é mais ou menos o método 
preferido), apenas aviso que :
 
 a) para programar defensivamente, sempre que vc trabalha com datas vc ** TEM 
** que se precaver da possibilidade do database aonde o seu código vai rodar 
estar com configurações de data/calendário/linguagem/território (o chamado NLS) 
não-padrão... Por exemplo :
 
SQL> alter session set nls_territory = 'AMERICA';
SQL> select level as dow,
    to_char(trunc(sysdate ,'D') + level, 'Day') as day
from dual
connect by level <= 7;

DOW DAY                                
--- ------------------------------------
  1 Monday                               
  2 Tuesday                              
  3 Wednesday                            
  4 Thursday                             
  5 Friday                               
  6 Saturday                             
  7 Sunday 

PORÉM :

SQL> alter session set nls_territory = 'UNITED KINGDOM';

SQL> select level as dow,
    to_char(trunc(sysdate ,'D') + level, 'Day') as day
from dual
connect by level <= 7;

DOW DAY                                
--- ------------------------------------
  1 Tuesday                              
  2 Wednesday                            
  3 Thursday                             
  4 Friday                               
  5 Saturday                             
  6 Sunday                               
  7 Monday    
  
 Vê ?? Databases configurados diferentemente podem dar NOMES diferentes para os 
dias da semana, podem numerar os dias da semana diferentemente .... Aí então se 
vc tivesse escrito um :
 
 WHERE TRUNC(colunadata, 'D') = 'numerodaquinta-feira'

 SEM especificar NLS o teu código poderia falhar...  EXATAMENTE por isso que 
praticamente TODAS as funções que trabalham com datas possuem um parâmetro 
NLS_LANGUAGE, NLS_TERRITORY ou equivalentes Justamente para vc indicar os 
formatos que está assumindo no seu código, yep yep ?? 
 
  b) SE vc vai recuperar grande parte dos dados da tabela ok, não se preocupe, 
MAS se vai recuperar relativamente poucas linhas comparando com o total, pode 
ser que seja útil um índice na coluna : nesse caso, fique CIENTE que qualquer 
função aplicada na coluna indexada DESABILITA o uso do índice 'normal', então 
talvez vc tenha que criar um índice de função 
  
  
  ==> para ambas as obs, Veja lá na documentação Oracle para mais dets e refs...
  
  []s
   
    Chiappa
  • ... JOSE PAULO jjpaulo....@hotmail.com [oracle_br]
    • ... Fabiano Picolotto fabiano...@gmail.com [oracle_br]
    • ... Marlon Pasquali - TI - Peccin S.A. marlon.pasqu...@peccin.com.br [oracle_br]
    • ... jlchia...@yahoo.com.br [oracle_br]
      • ... Andre Santos andre.psantos...@gmail.com [oracle_br]
        • ... JOSE PAULO jjpaulo....@hotmail.com [oracle_br]

Responder a