Funcion Como obtener el primer día de la semana en Oracle

daraya's picture

Funcion simple de como obtener el primer dia de la semana, partiendo de una fecha dada.

Para esta función asume que el primer dia de la semana es el lunes y no el domingo como en la mayoria de los ejemplos

 

create or replace FUNCTION PRIMER_DIA_SEMANA ( Fecha IN DATE) RETURN DATE AS
resultado date;
restar number;
x_dia varchar2(50) ;
BEGIN

restar := 0;
x_dia := '';

x_dia := trim(to_char(fecha, 'Day'));

if  x_dia = 'Monday' then
  restar := 0;
end if;

if  x_dia = 'Tuesday' then
  restar := 1;
end if;

if  x_dia = 'Wednesday' then
  restar := 2;
end if;

if  x_dia = 'Thursday' then
  restar := 3;
end if;

if  x_dia = 'Friday' then
  restar := 4;
end if;

if  x_dia = 'Saturday' then
  restar := 5;
end if;

if  x_dia = 'Sunday' then
  restar := 6;
end if;

resultado := fecha - restar;

RETURN resultado;
END PRIMER_DIA_SEMANA;