Ú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

    EOL 2012 - BOL 2013. Feliz Año Nuevo.Generación de un Password aleatorio en Django