On Wed, May 18, 2011 at 3:40 PM, Bruce Momjian <[email protected]> wrote: > Martin A. Brooks wrote: >> >> The following bug has been logged online: >> >> Bug reference: 6028 >> Logged by: Martin A. Brooks >> Email address: [email protected] >> 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.
The backward compatibility problem is pretty icky, but I don't much like the idea of leaving it as-is, either. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-bugs mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs
