Thread: timespan arithmetic

timespan arithmetic

From
David Rose
Date:
Hello.

I recently posted this question on pgsql-novice and received no
answer.  Undaunted, I'm trying again on pgsql-sql.  Perhaps someone
knows at least where to start looking for an answer to this problem.
It's not in the FAQ, and I couldn't find an answer in the mailing list
archives.

I have a table that includes a column of type timestamp.  I'd like to
formulate a query that returns, say, all rows no more than 24 hours
old, based on the timestamp.  Trial and error got me this far (and a
perusal of the mailing list archives confirmed it):
 SELECT * FROM table  WHERE loaded_time >= 'now'::timestamp - '1 days'::timespan ORDER BY loaded_time DESC;

This works fine in PostgreSQL 6.4.2.  However, another user of my
software, who has PostgreSQL 6.3.2, reports that he gets the following
error message:
 ERROR: There is no operator '-' for types 'timestamp' and 'timespan' You will either have to retype this query using
anexplicit cast, or you will have to define the operator using CREATE OPERATOR
 


So.  Is there a correct solution to this problem that works for all
versions of PostgreSQL--or at least, PostgreSQL versions 6.3.2 and
higher?  Barring that, is there at least a solution at all for 6.3.2,
which may or may not be different from the solution for 6.4.2 and
higher?

Many thanks.

David