Oh, one more thing. With the new patch I just posted, '0 hours' and 'HH' returns 12:
test=> select to_char('0 hours'::interval, 'HH'); to_char --------- 12 (1 row) Of course HH24 works fine. --------------------------------------------------------------------------- Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > I see your issue with HH/HH24, but I wanted this to work: > > > test=> select to_char('14 hours'::interval, 'HH'); > > to_char > > --------- > > 14 > > (1 row) > > > With the HH/HH24 change that is going to return 2. Do interval folks > > know they would have to use HH24 for intervals? > > Dunno if they know it, but they always had to do it that way before 8.1, > so it's not a change to require it. I get this in everything back to > 7.2: > > regression=# select to_char('14 hours'::interval, 'HH'); > to_char > --------- > 02 > (1 row) > > regression=# select to_char('14 hours'::interval, 'HH24'); > to_char > --------- > 14 > (1 row) > > and I don't see anything especially wrong with that behavior, as long as > it's documented. > > > Should we subtract 12 only if the time is < 24. That also seems > > strange. Also, a zero hour interval to HH would return 12, not 0. > > Offhand I'd vote for making the HH code use a "mod 12" calculation, > and making AM/PM depend on the value "mod 24". This gives at least a > slightly sane behavior for intervals > 24 hours. > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Have you searched our list archives? > > http://archives.postgresql.org > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org