Clarify age() 'months' calculation documentation.
authorBruce Momjian <bruce@momjian.us>
Fri, 14 Sep 2007 00:52:45 +0000 (00:52 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 14 Sep 2007 00:52:45 +0000 (00:52 +0000)
doc/src/sgml/func.sgml

index d83135ba03c5e3d5a84c4007985a424720fa83b6..e61a20aa3962ad003928749f96453d30f0806b28 100644 (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">
   <title>Functions and Operators</title>
@@ -5906,14 +5906,13 @@ SELECT (DATE '2001-02-16', INTERVAL '100 days') OVERLAPS
   </para>
 
   <para>
-   Note that when the <function>age</> function operates on multi-month
-   intervals, <productname>PostgreSQL</> adds days to the earlier date
-   until full months can be added.  This yields a different result than
-   adding full months first if the interval crosses from one month to the
-   next.  For example, <literal>age('2004-06-01', '2004-04-30')</> yeilds
-   <literal>1 mon 1 day</> using the <productname>PostgreSQL</> method,
-   while adding the month first would yield <literal>1 mon 2 days</>
-   because May has 31 days, while April has only 30.
+   Note there can be ambiguity in the <literal>months</> returned by
+   <function>age</> because different months have a different number of
+   days.  <productname>PostgreSQL</>'s approach uses the month from the
+   earlier of the two dates when calculating partial months.  For example,
+   <literal>age('2004-06-01', '2004-04-30')</> uses April to yield
+   <literal>1 mon 1 day</>, while using May would yield <literal>1 mon 2
+   days</> because May has 31 days, while April has only 30.
   </para>
 
   <sect2 id="functions-datetime-extract">