Convert to seconds first (3600 sec/hr) :
select ('3600'::int4 * '478'::int4 / '45.0'::float8
)::int4::reltime::interval ;interval
----------10:37:20
(1 row)
I don't know if "::int4::reltime::interval" is the best
way to end up with an interval, but its the only way I
could figure out how to do it off the top of my head.
On Tue, 2005-11-01 at 16:42 -0500, Terry Lee Tucker wrote:
> Hello:
>
> I'm trying to figure out how to convert a floating point value into an
> interval of time. I'm calculating the time required to drive from point A to
> point B. For the sake of this question, we'll just say it is miles/speed. So:
>
> drv_time = 478 / 45.0;
>
> The value of this is: 10.6222222222222222
>
> Is there a way of converting this value to an interval. It seems that INTERVAL
> only works with a quoted literal value.
>
> If I type:
> rnd=# select interval '10.8444444444444444 hours';
> interval
> ----------------------------
> @ 10 hours 50 mins 40 secs
> (1 row)
>
> Anybody have an pointers?
>
> Thanks...
>
>
> Work: 1-336-372-6812
> Cell: 1-336-363-4719
> email: terry@esc1.com
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
--
Guy Fraser
Network Administrator
The Internet Centre
1-888-450-6787
(780)450-6787