Months between two dates function

前端 未结 4 2077
孤城傲影
孤城傲影 2021-01-11 21:00

In oracle i can find out no:of months between using MONTHS_BETWEEN function.

In postgres i am using extract function for this. eg.like

select 
    ex         


        
4条回答
  •  旧时难觅i
    2021-01-11 21:14

    This is easy to re-implement in PostgreSQL just using SQL functions to tidy up what you've already got:

    create function months_of(interval)
     returns int strict immutable language sql as $$
      select extract(years from $1)::int * 12 + extract(month from $1)::int
    $$;
    
    create function months_between(date, date)
     returns int strict immutable language sql as $$
       select abs(months_of(age($1, $2)))
    $$;
    

    And now select months_between('1978-06-20', '2011-12-09') produces 401.

提交回复
热议问题