Обсуждение: More straight forward method to convert seconds::bigint to interval
I work in VoIP. HMS (Hour/Minute/Second) format appears to be the rule
when working with call time totals. I admit it makes some reports
easier to read.
The method I used to convert a int/bigint to HMS (or the standard
representation of an interval type) is as follows:
select (123456.789::varchar(24) || ' seconds')::interval as HMS;
hms
--------------
34:17:36.789
Is there a less string oriented method of converting seconds as an int
to an interval?
- Shane
Вложения
"Shane R. Spencer" <shane@bogomip.com> writes:
> Is there a less string oriented method of converting seconds as an int
> to an interval?
Multiply by an interval, eg
123456.789 * interval '1 second'
It works, it's fast, and you can use any scale factor you want.
regards, tom lane
Shane R. Spencer wrote:
> I work in VoIP. HMS (Hour/Minute/Second) format appears to be the rule
> when working with call time totals. I admit it makes some reports
> easier to read.
>
> The method I used to convert a int/bigint to HMS (or the standard
> representation of an interval type) is as follows:
>
> select (123456.789::varchar(24) || ' seconds')::interval as HMS;
> hms
> --------------
> 34:17:36.789
>
> Is there a less string oriented method of converting seconds as an int
> to an interval?
>
> - Shane
>
I think this is cleaner/faster:
select interval '1 second' * 123456.789 as HMS;
hms
--------------
34:17:36.789
-Adam
Well worth joining the list. Thanks guys. On Wed, Sep 23, 2009 at 12:48 PM, Adam Rich <adam.r@sbcglobal.net> wrote: > Shane R. Spencer wrote: >> >> I work in VoIP. HMS (Hour/Minute/Second) format appears to be the rule >> when working with call time totals. I admit it makes some reports >> easier to read. >> >> The method I used to convert a int/bigint to HMS (or the standard >> representation of an interval type) is as follows: >> >> select (123456.789::varchar(24) || ' seconds')::interval as HMS; >> hms >> -------------- >> 34:17:36.789 >> >> Is there a less string oriented method of converting seconds as an int >> to an interval? >> >> - Shane >> > > I think this is cleaner/faster: > > > select interval '1 second' * 123456.789 as HMS; > > hms > -------------- > 34:17:36.789 > > > -Adam > > > >