Muchas veces se necesita presentar una fecha en forma literal es decir en palabras, a veces con o sin el dia, a continuacion se presenta una funcion que realiza la conversion de una fecha YYYY-MM-DD a palabras nombre_dia dia de mes de año
POSTGRES SQL
CREATE OR REPLACE FUNCTION _fecha_literal(_fecha date, _dia integer) RETURNS text AS $$
-- _dia =0/1 sin/con el dia de la semana
------------------------
-- Autor: Luis Jordan P.
------------------------
declare
_salida text;
begin
SELECT
CASE WHEN _dia=1 THEN
CASE WHEN rtrim(to_char(_fecha, 'day'))='sunday' THEN 'domingo '
WHEN rtrim(to_char(_fecha, 'day'))='monday' THEN 'lunes '
WHEN rtrim(to_char(_fecha, 'day'))='tuesday' THEN 'martes '
WHEN rtrim(to_char(_fecha, 'day'))='wednesday' THEN 'miercoles '
WHEN rtrim(to_char(_fecha, 'day'))='thursday' THEN 'jueves '
WHEN rtrim(to_char(_fecha, 'day'))='friday' THEN 'viernes '
WHEN rtrim(to_char(_fecha, 'day'))='saturday' THEN 'sabado '
ELSE ''
END
ELSE ''
END
||
extract(day from _fecha) || ' de ' ||
CASE WHEN extract(month from _fecha) =01 THEN 'enero'
WHEN extract(month from _fecha) =02 THEN 'febrero'
WHEN extract(month from _fecha) =03 THEN 'marzo'
WHEN extract(month from _fecha) =04 THEN 'abril'
WHEN extract(month from _fecha) =05 THEN 'mayo'
WHEN extract(month from _fecha) =06 THEN 'junio'
WHEN extract(month from _fecha) =07 THEN 'julio'
WHEN extract(month from _fecha) =08 THEN 'agosto'
WHEN extract(month from _fecha) =09 THEN 'septiembre'
WHEN extract(month from _fecha) =10 THEN 'octubre'
WHEN extract(month from _fecha) =11 THEN 'noviembre'
WHEN extract(month from _fecha) =12 THEN 'diciembre'
END
|| ' de ' || extract(year from _fecha)
INTO _salida;
return _salida;
end; $$ LANGUAGE plpgsql;
SELECT _fecha_literal('2007-12-10'::date, 1);
Resultado:
lunes 10 de diciembre de 2007
sábado, 10 de enero de 2009
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario