19

Is there any function(s) in postgres equivalent to Oracle function LAST_DAY().

I need to get last day in postgres (including month and year)

jobi88
  • 3,865
  • 8
  • 21
  • 15
  • Here's a similar question: http://stackoverflow.com/questions/8944721/how-do-i-determine-the-last-day-of-the-previous-month-using-postgresql – vyegorov Oct 27 '14 at 11:31

2 Answers2

38

Well, In postgres, it seems there's no such function equivalent to LAST_DAY() available in oracle.

If you need to, you can have your own in the following ways as a

Select Query

SELECT (date_trunc('MONTH', now()) + INTERVAL '1 MONTH - 1 day')::date;

plsql Function

        CREATE OR REPLACE FUNCTION last_day(date)
        RETURNS date AS
        $$
        SELECT (date_trunc('MONTH', $1) + INTERVAL '1 MONTH - 1 day')::date;
        $$ LANGUAGE 'sql'
        IMMUTABLE STRICT;

Hope this helps.

Gopinagh.R
  • 4,826
  • 4
  • 44
  • 60
1
create or replace funCtion last_day(fromdt anyelement)
returns date as
$BODY$
  SELECT (date_trunc('MONTH', cast(fromdt as date)) + INTERVAL '1 MONTH - 1 day')::date;
$BODY$
  LANGUAGE sql VOLATILE
  COST 100;
  ALTER FUNCTION last_day(anyelement)
    OWNER TO postgres;
Gonzalo Quero
  • 3,303
  • 18
  • 23