Re: Intervals and ISO 8601 duration

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
Cc: Ken Tanzer <ken(dot)tanzer(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Sebastien Flaesch <sebastien(dot)flaesch(at)4js(dot)com>, pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Intervals and ISO 8601 duration
Date: 2023-01-13 22:49:28
Message-ID: CAKFQuwau=8wMaqpZCxwtUyrXsd6mojrWSMrE+2oeyWHrxM35UQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Fri, Jan 13, 2023 at 3:41 PM Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
wrote:

> On 1/13/23 14:17, Ken Tanzer wrote:
> > On Thu, Jan 12, 2023 at 7:08 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us
> > <mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us>> wrote:
> >
> > What Postgres actually stores for an interval is three fields:
> > months, days, and microseconds.
> >
> >
> > Is there a way to view/extract this raw data for any given interval?
> >
> > (I'm asking because of an issue that came up about intervals that were
> > "equal but not identical.")
>
> 1) Can you provide an example?
>
> 2) I don't know how to reverse an output interval to it's input value.
>
>
That wasn't the ask though:

select interval '2 year 36 hours 15.123456789 seconds';
yields:
2 years 36:00:15.123457

But if what is stored is only months, days, and microseconds what is being
requested is to produce:

24 months 1.5 days 15123457 microseconds (or whatever the values stored in
those three positions is...)

David J.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Ken Tanzer 2023-01-13 22:51:31 Re: Intervals and ISO 8601 duration
Previous Message Ken Tanzer 2023-01-13 22:47:53 Re: Intervals and ISO 8601 duration