Últimamente he posteado artículos muy cortos con la finalidad de ayudarme a recordar cosas sencillas que en algún momento usé y pueda necesitarlo de nuevo en el futuro, y si existe alguien mas que lo usé también, pues que mejor.
En ocasiones, es necesario dar con el último día de un mes determinado, y aunque pueda parecer algo sencillo, puede complicarse si no conocemos algunas funciones simples de postgresql (pgsql).El código es el siguiente:
CREATE OR REPLACE FUNCTION last_day_month(tyear INTEGER, tmonth INTEGER)
RETURNS VARCHAR AS
$$ BEGIN
RETURN TO_CHAR(TO_TIMESTAMP(tyear || '-' || TO_CHAR(tmonth,'FM00') || '-01', 'YYYY-MM-DD') + INTERVAL '1 month' - INTERVAL '1 days', 'YYYY-MM-DD');
END; $$
LANGUAGE plpgsql;
La función es muy sencilla, recibe año y mes como parametros, los concatena asignándoles el día 1, le suma un mes y le resta finalmente un día. Esto devuelve el último día del mes.
La función no tiene validaciones, ya que es solo para fines prácticos y demostrativos.
Jorge Hernandez :: http://jorgeluis.com.mx