Ir para conteúdo

Arquivado

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

João Otávio 21

Função para buscar Primeiro dia Semana / Ultimo dia Semana

Recommended Posts

Bom dia pessoal,

 

Preciso de uma ajuda ! Estou fazendo uma função para poder retornar qual o Primeiro e Último dia da semana de uma respectiva data..

CREATE OR REPLACE
FUNCTION FIRST_LAST_DAY_WEEK (ANOSEMANA IN VARCHAR2, PRIMEIRODIA OUT DATE, ULTIMODIA OUT DATE) RETURN DATE AS 
BEGIN 
  SELECT PRIMEIRO_DIA_SEMANA INTO PRIMEIRODIA, PRIMEIRO_DIA_SEMANA+6 INTO ULTIMODIA 
  FROM(
    SELECT (TO_DATE(YEAR||'0101','YYYYMMDD') + 7 * (SEMANA-1))-2 PRIMEIRO_DIA_SEMANA
    FROM (
      SELECT substr(ANO_SEMANA,1,4) YEAR, to_number(substr(ANO_SEMANA,5)) SEMANA
      FROM (
        SELECT ANOSEMANA ANO_SEMANA FROM DUAL
      )
    )
  );
END FIRST_LAST_DAY_WEEK;

Tenho como parametro ANOSEMANA que recebe valor 'YYYYIW', e os outros parametros sao para a saidas das datas do primeiro/ultimo dia da semana respectiva.

 

Estou com o seguinte problema e nao sei como soluciona-lo:

  • Erro(3,3): PL/SQL: SQL Statement ignored
  • Erro(3,70): PL/SQL: ORA-00923: palavra-chave FROM não localizada onde esperada

 

Alguém poderia me ajudar com isso ?

 

Existe algum meio melhor para eu conseguir essas datas atraves de uma funcao ?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se ajuda

 

 

select DATA_TESTE ,
       TO_CHAR(DATA_TESTE,'day') DIA,
       (TRUNC(DATA_TESTE) - TO_CHAR(TRUNC(DATA_TESTE),'d') + 1) primeiro_semana
FROM   (select to_date('31/12/2013','dd/mm/yyyy') + rownum data_teste
        from   USER_TAB_COLUMNS
        where  rownum < 42) virtual

faz o último ...

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.