Clarify age() 'months' calculation documentation.

This commit is contained in:
Bruce Momjian 2007-09-14 00:52:45 +00:00
parent f307fe4c9b
commit dfe2e3f7a5

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.392 2007/08/31 21:33:48 momjian Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.393 2007/09/14 00:52:45 momjian Exp $ -->
<chapter id="functions"> <chapter id="functions">
<title>Functions and Operators</title> <title>Functions and Operators</title>
@ -5906,14 +5906,13 @@ SELECT (DATE '2001-02-16', INTERVAL '100 days') OVERLAPS
</para> </para>
<para> <para>
Note that when the <function>age</> function operates on multi-month Note there can be ambiguity in the <literal>months</> returned by
intervals, <productname>PostgreSQL</> adds days to the earlier date <function>age</> because different months have a different number of
until full months can be added. This yields a different result than days. <productname>PostgreSQL</>'s approach uses the month from the
adding full months first if the interval crosses from one month to the earlier of the two dates when calculating partial months. For example,
next. For example, <literal>age('2004-06-01', '2004-04-30')</> yeilds <literal>age('2004-06-01', '2004-04-30')</> uses April to yield
<literal>1 mon 1 day</> using the <productname>PostgreSQL</> method, <literal>1 mon 1 day</>, while using May would yield <literal>1 mon 2
while adding the month first would yield <literal>1 mon 2 days</> days</> because May has 31 days, while April has only 30.
because May has 31 days, while April has only 30.
</para> </para>
<sect2 id="functions-datetime-extract"> <sect2 id="functions-datetime-extract">