Re: [SQL] Interval subtracting
От | Bruce Momjian |
---|---|
Тема | Re: [SQL] Interval subtracting |
Дата | |
Msg-id | 200603012145.k21LjRX11928@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: [SQL] Interval subtracting (Mark Dilger <pgsql@markdilger.com>) |
Ответы |
Re: [SQL] Interval subtracting
Re: [SQL] Interval subtracting |
Список | pgsql-hackers |
Mark Dilger wrote: > Your proposal is that justify_hours borrows 24 hours from the days column in > order to bring the -12 hours up to a positive 12 hours. Should it only do that > if the days column is a positive number? What if it is negative? > > I think we all agree on the following but nobody is explicitly saying so: > > select justify_days(justify_hours('2 days -12:00:00'::interval)) > justify_days > ------------------------- > 1 day 12:00:00 Right. > select justify_days(justify_hours('-2 days -12:00:00'::interval)) > justify_days > ------------------------- > -2 days -12:00:00 Right, unchanged. > Am I correct that the second case should still have negative hours? If so, then > justify_hours(...) needs to examine the sign of the days and months portion of > the interval while performing its work. Yes, it would need to look at both, and this opens a new problem. Imagine this: '1 mons -2 days -12:00:00' Which sign do we head to for this? For justify_hours, if we don't look at the months it remains unchange, but calling justify_days we get: '28 days -12:00:00' which is wrong (negative and positive). Now if we knew justify_days was going to be called we would have had justify_hours return '-3 days 12:00:00' so the final result after calling justify_days would be '27 days 12:00:00'. My head hurts. -- 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. +
В списке pgsql-hackers по дате отправления: