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

daraya's picture

Funcion simple de como obtener el ultimo 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 ULTIMO_DIA_SEMANA ( Fecha IN DATE) RETURN DATE AS
resultado date;
suma number;
x_dia varchar2(50) ;
BEGIN

suma := 0;
x_dia := '';

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

if  x_dia = 'Monday' then
  suma := 6;
end if;

if  x_dia = 'Tuesday' then
  suma := 5;
end if;

if  x_dia = 'Wednesday' then
  suma := 4;
end if;

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

if  x_dia = 'Friday' then
  suma := 2;
end if;

if  x_dia = 'Saturday' then
  suma := 1;
end if;

if  x_dia = 'Sunday' then
  suma := 0;
end if;

resultado := fecha + suma;

RETURN resultado;
END ULTIMO_DIA_SEMANA;