Mark Dilger wrote: > Tom Lane wrote: > > "Milen A. Radev" <[EMAIL PROTECTED]> writes: > > > >>Milorad Poluga ????????????: > >> > >>>>SELECT '10 years 1 mons 1 days'::interval - '9 years 10 mons 15 > >>>>days'::interval > >>>>?column? > >>>>--------------- > >>>>3 mons -14 days > >>>> > >>>>Why not '2 mons 16 days' ? > > > > > >>Please read the last paragraph in section 8.5.1.4 of the manual > >>(http://www.postgresql.org/docs/8.1/static/datatype-datetime.html#AEN4775) > >>. It mentions the functions named "justify_days" and "justify_hours" > >>that could do what you need. > > > > > > justify_days doesn't currently do anything with this result --- it > > thinks its charter is only to reduce day components that are >= 30 days. > > However, I think a good case could be made that it should normalize > > negative days too; that is, the invariant on its result should be > > 0 <= days < 30, not merely days < 30. Similarly for justify_hours. > > Comments anyone? Patch anyone? > > Sure, if nobody objects to this change I can write the patch.
Good question. Should we restrict days to 0 - 30 or -30 - 30? The current system does the later: test=> select justify_days('-45 days'); justify_days ------------------ -1 mons -15 days (1 row) test=> select justify_days('1 month -45 days'); justify_days -------------- -15 days (1 row) test=> select justify_days('1 month -15 days'); justify_days ---------------- 1 mon -15 days (1 row) Should we be adjusting the last one? I am unsure. Comments? -- Bruce Momjian http://candle.pha.pa.us SRA OSS, Inc. http://www.sraoss.com + If your life is a hard drive, Christ can be your backup. + ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster