From: | Achilleus Mantzios <achill(at)matrix(dot)gatewaynet(dot)com> |
---|---|
To: | Erik Wasser <erik(dot)wasser(at)iquer(dot)net> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Howto turn an integer into an interval? |
Date: | 2004-10-05 11:44:56 |
Message-ID: | Pine.LNX.4.44.0410051443550.13144-100000@matrix.gatewaynet.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
O Erik Wasser έγραψε στις Oct 5, 2004 :
> Hi List,
>
> I got a table named foobar with two fields
>
> last_sms is a 'timestamp without timezone'
> resend_interval is a 'integer'
>
> I choose 'integer' for resend_interval rather than a 'interval' because
> the frontend can easier handle the number of seconds. But now I'm stuck
> with the query to get all rows that we're older than 'resend_interval'
> in seconds.
>
> My first try was:
>
> SELECT *
> FROM sms_groups
> WHERE
> (current_timestamp - last_sms) > '3600 seconds'::interval
>
> This is working great and returns all rows that are older than a hour.
> But how I do this with the colum 'resend_interval' in the query?
>
> SELECT *
> FROM sms_groups
> WHERE
> (current_timestamp - last_sms) > resend_interval::interval
>
> gives me only a "cannot cast type integer to interval". So how can I
> turn an integer to an interval? Or is there an other solution?
> Suggestions?
If you know for sure that you are keeping resend_interval in seconds,
then try as follows:
foodb=# SELECT (59::text||' secs')::interval;
interval
----------
00:00:59
(1 row)
foodb=# SELECT (120::text||' secs')::interval;
interval
----------
00:02:00
(1 row)
foodb=# SELECT ((3600*25)::text||' secs')::interval;
interval
----------------
1 day 01:00:00
(1 row)
foodb=#
>
> P.S: I'm using psql '7.4.5' of gentoo.
>
>
--
-Achilleus
From | Date | Subject | |
---|---|---|---|
Next Message | Erik Wasser | 2004-10-05 12:07:41 | Howto turn an integer into an interval? |
Previous Message | Michael Fuhr | 2004-10-05 07:04:04 | Re: Stuffing six separate columns into a single array? |