public inbox for [email protected]
help / color / mirror / Atom feedFrom: Adrian Klaver <[email protected]>
To: Ron Johnson <[email protected]>
To: pgsql-general <[email protected]>
Subject: Re: INTERVAL MINUTE TO SECOND didn't do what I thought it would do
Date: Wed, 8 Jan 2025 11:43:33 -0800
Message-ID: <[email protected]> (raw)
In-Reply-To: <CANzqJaAxzAO6ye9r3_T2HA_g1myZTEFH+z7uSzBf57Bh2ykWVg@mail.gmail.com>
References: <CANzqJaAxzAO6ye9r3_T2HA_g1myZTEFH+z7uSzBf57Bh2ykWVg@mail.gmail.com>
On 1/8/25 11:00 AM, Ron Johnson wrote:
> PG 14.13
>
> The goal of "(now() - query_start)::INTERVAL MINUTE TO SECOND" column is
> to see how many minutes and seconds ago that the query started. (Why?
> Because that's useful to me, and the people I show the output to when
> queries run for more than a few minutes. We don't need to see hours and
> days; just the total MMMMM:SS.mmm.)
>
> I'd hoped that ::INTERVAL MINUTE TO SECOND would do the trick, but
> MINUTE TO SECOND seems to be ignored.
From here:
https://www.postgresql.org/docs/current/datatype-datetime.html#DATATYPE-INTERVAL-INPUT
"Also, field values “to the right” of the least significant field
allowed by the fields specification are silently discarded. For example,
writing INTERVAL '1 day 2:03:04' HOUR TO MINUTE results in dropping the
seconds field, but not the day field."
>
> Is there cast magic that does what I want?
The only way I can think of extract the epoch from the interval and pass
to a function that builds what you want.
>
> TAPc=# select pid
> ,datname as db, usename
> ,to_char(query_start, 'YYYY-MM-DD HH24:MI:SS.MS <http://SS.MS>';)
> as qry_start
> ,(now() - query_start)::INTERVAL MINUTE TO SECOND as qry_elapsed
> ,cast(state as char(11)) as state
> from pg_stat_activity
> WHERE pid != pg_backend_pid()
> and state != 'idle';
> pid | db | usename | qry_start |
> qry_elapsed | state
> ---------+------+------------+-------------------------+-------------------------+-------------
> 657996 | | replicator | 2024-11-11 21:03:00.992 | 57 days
> 16:38:22.342449 | active
> 4070070 | TAPc | TAP | 2025-01-08 13:41:23.202 |
> 00:00:00.132817 | active
> 4070069 | TAPc | TAP | 2025-01-08 13:41:23.140 |
> 00:00:00.194222 | active
> 4070065 | TAPc | TAP | 2025-01-08 13:41:23.238 |
> 00:00:00.096418 | active
> (4 rows)
>
>
> --
> Death to <Redacted>, and butter sauce.
> Don't boil me, I'm still alive.
> <Redacted> lobster!
--
Adrian Klaver
[email protected]
view thread (5+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: INTERVAL MINUTE TO SECOND didn't do what I thought it would do
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox