-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- SIU-GUARANI 3 -- Version 3.0.0 -- Function: f_diadelasemana -- -- Retorna el nombre del dia de la semana de una fecha -- -- Recibe: -- 1. Una fecha -- 2. En que lenguaje se quiere recibir el nombre (1 = Espaņol / 2 = Ingles) -- Retorna: -- 1. Dia de la semana (Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo) -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- DROP FUNCTION f_diadelasemana (date, smallint); CREATE OR REPLACE FUNCTION f_diadelasemana (fecha Date, lenguaje smallint) RETURNS varchar(15) AS $$ DECLARE DAY_OF_WEEK_CONST varchar(15) := 'dow'; dayOfWeek Integer := 0; dayName varchar(15) := 'Test'; BEGIN dayOfWeek := date_part(DAY_OF_WEEK_CONST, fecha); IF lenguaje = 1 THEN -- Espaņol IF dayOfWeek = 0 THEN dayName := 'Domingo'; ELSEIF dayOfWeek = 1 THEN dayName := 'Lunes'; ELSEIF dayOfWeek = 2 THEN dayName := 'Martes'; ELSEIF dayOfWeek = 3 THEN dayName := 'Miercoles'; ELSEIF dayOfWeek = 4 THEN dayName := 'Jueves'; ELSEIF dayOfWeek = 5 THEN dayName := 'Viernes'; ELSEIF dayOfWeek = 6 THEN dayName := 'Sabado'; END IF; ELSEIF lenguaje = 2 THEN -- Ingles IF dayOfWeek = 0 THEN dayName := 'Sunday'; ELSEIF dayOfWeek = 1 THEN dayName := 'Monday'; ELSEIF dayOfWeek = 2 THEN dayName := 'Tuesday'; ELSEIF dayOfWeek = 3 THEN dayName := 'Wednesday'; ELSEIF dayOfWeek = 4 THEN dayName := 'Thursday'; ELSEIF dayOfWeek = 5 THEN dayName := 'Friday'; ELSEIF dayOfWeek = 6 THEN dayName := 'Saturday'; END IF; ELSE dayName := ''; END IF; RETURN dayName; END; $$ LANGUAGE plpgsql; -- ++++++++++++++++++++++++++++++ Fin Function f_generar_mesa() ++++++++++++++++ -- REVOKE EXECUTE ON FUNCTION f_diadelasemana (date, smallint); GRANT EXECUTE ON FUNCTION f_diadelasemana(date, smallint) to public; /* select * from f_diadelasemana('2011-03-25'::date, 1::smallint); select * from f_diadelasemana('2011-03-25'::date, 2::smallint); */