pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Achilleus Mantzios <achill@matrix.gatewaynet.com>
To: Erik Wasser <erik.wasser@iquer.net>
Cc: pgsql-sql@postgresql.org
Subject: Re: Howto turn an integer into an interval?
Date: Tue, 5 Oct 2004 14:44:56 +0300 (EEST)
Message-ID: <Pine.LNX.4.44.0410051443550.13144-100000@matrix.gatewaynet.com> (raw)
In-Reply-To: <200410051407.42037.erik.wasser@iquer.net>

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




view thread (5+ messages)  latest in thread

Message-ID: <Pine.LNX.4.44.0410051443550.13144-100000@matrix.gatewaynet.com>
Permalink:  ../Pine.LNX.4.44.0410051443550.13144-100000@matrix.gatewaynet.com/
Also on:    postgresql.org/message-id/Pine.LNX.4.44.0410051443550.13144-100000@matrix.gatewaynet.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: achill@matrix.gatewaynet.com, erik.wasser@iquer.net
  Subject: Re: Howto turn an integer into an interval?
  In-Reply-To: <Pine.LNX.4.44.0410051443550.13144-100000@matrix.gatewaynet.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox