Thread: Question on interval

Question on interval

From
Wei Weng
Date:
Hi all.

How do I write a query that converts an interger to the interval type?

Like convert integer 10 to INTERVAL '10 seconds'?

The integer is a column in a table though, so it is more like convert 
integer tbl.theInteger to INTERVAL 'tbl.theInteger seconds".

Thanks!


Wei



Re: Question on interval

From
"Rodrigo De León"
Date:
On 4/20/07, Wei Weng <wweng@kencast.com> wrote:
> Hi all.
>
> How do I write a query that converts an interger to the interval type?
>
> Like convert integer 10 to INTERVAL '10 seconds'?
>
> The integer is a column in a table though, so it is more like convert
> integer tbl.theInteger to INTERVAL 'tbl.theInteger seconds".
>
> Thanks!
>
>
> Wei

select (10||' sec')::interval;


Re: Question on interval

From
Michael Glaesemann
Date:
On Apr 20, 2007, at 13:53 , Wei Weng wrote:

> How do I write a query that converts an interger to the interval type?
>
> Like convert integer 10 to INTERVAL '10 seconds'?

An easy way to do this is:

SELECT 10 * INTERVAL '1 second';

>
> The integer is a column in a table though, so it is more like  
> convert integer tbl.theInteger to INTERVAL 'tbl.theInteger seconds".

If you'd like to change the type of the column to interval, you can  
use something like

ALTER TABLE a_table
ALTER COLUMN an_integer_column TYPE INTERVAL
USING an_integer_column * INTERVAL '1 second';

You could also create a view that would present the integer column as  
an interval if you don't want to alter the table itself.

Does this help?

Michael Glaesemann
grzm seespotcode net




Re: Question on interval

From
Scott Marlowe
Date:
On Fri, 2007-04-20 at 13:53, Wei Weng wrote:
> Hi all.
> 
> How do I write a query that converts an interger to the interval type?
> 
> Like convert integer 10 to INTERVAL '10 seconds'?
> 
> The integer is a column in a table though, so it is more like convert 
> integer tbl.theInteger to INTERVAL 'tbl.theInteger seconds".

A lot of the times, it's easiest to multiply it:

select ..... where somedatefield > now() - interval '1 minute' * 5


Re: Question on interval

From
Steve Crawford
Date:
Rodrigo De León wrote:
> On 4/20/07, Wei Weng <wweng@kencast.com> wrote:
>> Hi all.
>>
>> How do I write a query that converts an interger to the interval type?
>>
>> Like convert integer 10 to INTERVAL '10 seconds'?
>>
>> The integer is a column in a table though, so it is more like convert
>> integer tbl.theInteger to INTERVAL 'tbl.theInteger seconds".
>>
>> Thanks!
>>
>>
>> Wei
>
> select (10||' sec')::interval;

Or, if you prefer:
select 10*'1 second'::interval;

Cheers,
Steve