Karel Zak <zakkr(at)zf(dot)jcu(dot)cz> writes:
> On Fri, Feb 21, 2003 at 07:59:19PM +0900, Jean-Christian Imbeault wrote:
>> How can I cast the return value of a sub-select as an interval?
>> select current_timestamp - interval '(select days from T) days'
> You can cast it in the subselect:
> select current_timestamp - (select (days::text || 'd')::interval from T);
A better way of converting numeric values to intervals is to rely on the
interval-times-float8 operator:
select current_timestamp - (select days from T) * interval '1 day';
This is readable, efficient, and easily adapted to other units (second,
month, etc).
regards, tom lane