On Tue, May 24, 2022 at 01:11:45PM -0700, Nathan Bossart wrote:
> The documentation for this function indicates HH24 can output hour values
> higher than 23∴
>
> <function>to_char(interval)</function> formats <literal>HH</literal> and
> <literal>HH12</literal> as shown on a 12-hour clock, for example zero hours
> and 36 hours both output as <literal>12</literal>, while <literal>HH24</literal>
> outputs the full hour value, which can exceed 23 in
> an <type>interval</type> value.
>
> I see different results depending on how I define the interval:
>
> postgres=# select to_char(INTERVAL '1 day', 'HH24:MI');
> to_char
> ---------
> 00:00
> (1 row)
>
> postgres=# select to_char(INTERVAL '24h', 'HH24:MI');
> to_char
> ---------
> 24:00
> (1 row)
>
> The example provided is more like the former (no hour value), because
> "timestamp - timestamp" converts 24-hour intervals into days. In general,
> I agree that this probably not a bug. You probably want to ask to_char()
> to display the days as well..
Well, if we did that then this would be odd:
SELECT to_char(INTERVAL '2 day', 'DD HH24:MI');
to_char
----------
02 00:00
or this:
SELECT to_char(INTERVAL '2 day 4 hours', 'DD HH24:MI');
to_char
----------
02 04:00
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
Indecision is a decision. Inaction is an action. Mark Batterson