Обсуждение: subtracting minutes from date
What is the best way to store a timestamp if all I need to do is select rows where this timestamp is less than 60 minutes prior to the current time? If I have a column called date with data type timestamp without time zone I know I can use SELECT * FROM table WHERE date < (now()::DATE - 7)::TIMESTAMP; to select rows where date is older than seven days. I'm not quite sure how to interpret now()::DATE::TIMESTAMP since I'm not able to answer my own question. I've tried things like: SELECT * FROM table WHERE date < now()::DATE::(TIMESTAMP - 60); but this gives a syntax error. Thanks. -- Brandon
You can just save it as timestamp and try the following query.
select * from table where date < (now() - interval '1 hour');
Regards
Chandra Sekhar Surapaneni
-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Brandon Metcalf
Sent: Thursday, February 23, 2006 1:56 PM
To: pgsql-general@postgresql.org
Subject: [GENERAL] subtracting minutes from date
What is the best way to store a timestamp if all I need to do is select
rows where this timestamp is less than 60 minutes prior to the current
time?
If I have a column called date with data type timestamp without time
zone I know I can use
SELECT * FROM table WHERE date < (now()::DATE - 7)::TIMESTAMP;
to select rows where date is older than seven days. I'm not quite sure
how to interpret now()::DATE::TIMESTAMP since I'm not able to answer my
own question. I've tried things like:
SELECT * FROM table WHERE date < now()::DATE::(TIMESTAMP - 60);
but this gives a syntax error.
Thanks.
--
Brandon
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly
On Thu, 2006-02-23 at 13:55, Brandon Metcalf wrote: > What is the best way to store a timestamp if all I need to do is > select rows where this timestamp is less than 60 minutes prior to the > current time? > > If I have a column called date with data type timestamp without time > zone I know I can use > > SELECT * FROM table WHERE date < (now()::DATE - 7)::TIMESTAMP; > > to select rows where date is older than seven days. I'm not quite > sure how to interpret now()::DATE::TIMESTAMP since I'm not able to > answer my own question. I've tried things like: > > SELECT * FROM table WHERE date < now()::DATE::(TIMESTAMP - 60); Tell it you're subracting a minute: select now() - interval '13 minutes'; That kind of thing
c == chandu@positivenetworks.net writes: c> You can just save it as timestamp and try the following query. c> select * from table where date < (now() - interval '1 hour'); Thanks. -- Brandon
s == smarlowe@g2switchworks.com writes: s> On Thu, 2006-02-23 at 13:55, Brandon Metcalf wrote: s> > What is the best way to store a timestamp if all I need to do is s> > select rows where this timestamp is less than 60 minutes prior to the s> > current time? s> > s> > If I have a column called date with data type timestamp without time s> > zone I know I can use s> > s> > SELECT * FROM table WHERE date < (now()::DATE - 7)::TIMESTAMP; s> > s> > to select rows where date is older than seven days. I'm not quite s> > sure how to interpret now()::DATE::TIMESTAMP since I'm not able to s> > answer my own question. I've tried things like: s> > s> > SELECT * FROM table WHERE date < now()::DATE::(TIMESTAMP - 60); s> Tell it you're subracting a minute: s> select now() - interval '13 minutes'; Thanks. -- Brandon
On Thu, Feb 23, 2006 at 03:08:32PM -0600, Scott Marlowe wrote: > > SELECT * FROM table WHERE date < now()::DATE::(TIMESTAMP - 60); > > Tell it you're subracting a minute: > > select now() - interval '13 minutes'; Or, better yet if you're feeding in a variable: date < now() - ( 13 * '1 minute'::interval ) -- Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461
On Thu, Feb 23, 2006 at 13:55:34 -0600, Brandon Metcalf <bmetcalf@nortel.com> wrote: > > If I have a column called date with data type timestamp without time > zone I know I can use > > SELECT * FROM table WHERE date < (now()::DATE - 7)::TIMESTAMP; You can do this without converting to timestamp: SELECT * FROM table WHERE date < current_date - 7;