Обсуждение: 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 > > > >