Bruno, thanks for answering. I still have some questions: > > I have the need to output intervals (ages in this case). > > PostgreSQL takes great care to handle months correctly (eg > > take into account varying months lengths). This is only > > possible if either end point or start point of an interval are > > known. For post processing some of the ambiguity of what > > "2 mons" means would be removed if "61 days" was returned. > > This is sort of done now, but the months part of the interval will be > treated as 30 days. Are you saying that when PostgreSQL returns "... 3 mons ..." as a representation of an interval I can safely assume that when it calculated the number of months it used 30 days regardless of the actual length of the month ? I couldn't find that number mentioned anywhere and had not browsed the source yet. That would also be contrary to what I thought. I assumed the following would happen: select age('1999-2-2', '1999-3-2'); select age('1999-5-2', '1999-6-2'); would both return "1 mon" (despite the first one being 28 days and the second one being 31 days). I am now looking for a way to say: select age('1999-2-2', '1999-3-2', without months); select age('1999-5-2', '1999-6-2', without months); and get "28 days" in the first and "31 days" in the second result. However, if you say that "1 mon" is always considered 30 days in this context I would expect to receive: 1) "1 mon -2 days" (it would return 28 days of course, I know) 2) "1 mon 1 day" Neither 7.1 nor 7.4 return that. > You can extract "epoch" from the interval to get the total number of > seconds in the interval (converting months to the number of seconds > in 30 days) and then divide that by the appropiate amount. That only works if the above holds true, eg the month must be fixed to 30 days by the calculation *generating* the interval representation. Applying epoch *after* the fact is no good, does it, because the epoch() code won't know whether "1 mons" is to be 28 or 29 or 30 or 31 days. Am I missing something here ? Karsten -- GPG key ID E4071346 @ wwwkeys.pgp.net E167 67FD A291 2BEA 73BD 4537 78B9 A9F9 E407 1346 ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org