Martin A. Brooks wrote:
>
> The following bug has been logged online:
>
> Bug reference: 6028
> Logged by: Martin A. Brooks
> Email address: martin@antibodyMX.net
> PostgreSQL version: 9.0.4
> Operating system: Debian/GNU Linux 6
> Description: age() function output contracts "months", but not any
> other units.
> Details:
>
> Hi
>
> postgres=# select age(now(),'1973-12-20'::timestamp);
> age
> -----------------------------------------
> 37 years 4 mons 28 days 15:33:49.041831
> (1 row)
>
>
> Note "mons" and not "months". And if "mons", why not "yrs" and "dys"?
I was hoping someone else knew a good answer to this question, but now
that no one replied --- I have no idea on it was done this way. I think
this code came from Berkeley. My guess is that the spelling was based
on the libc struct tm field names:
int tm_mday; /* day of month (1 - 31) */
int tm_mon; /* month of year (0 - 11) */
int tm_year; /* year - 1900 */
The only clear answer I can think of is that "month" has five letters,
and "year" and "day" have less then five letters. :-|
Does anyone feel this is worth changing? I am concerned such a change
would break many user applications.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ It's impossible for everything to be true. +