Dies lässt sich einfach in PostgreSQL neu implementieren, indem Sie einfach SQL-Funktionen verwenden, um das aufzuräumen, was Sie bereits haben:
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)))
$$;
Und jetzt select months_between('1978-06-20', '2011-12-09')
erzeugt 401.