Optimization with dates

From: Jean-Christophe Boggio <cat(at)thefreecat(dot)org>
To: pgsql-sql(at)postgresql(dot)org
Subject: Optimization with dates
Date: 2001-11-13 23:56:56
Message-ID: 72319017913.20011114005656@thefreecat.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hello,

I really have a problem dealing with dates :

I have a big table (~10M rows) like :

create table gains (
dategain timestamp,
otherfields
);

There's an index on dategain and I want to use it to get the last
30 days records :

explain select count(*) from gains where dategain>=now()-30;

Aggregate (cost=256546.78..256546.78 rows=1 width=0)
-> Seq Scan on gains (cost=0.00..250627.68 rows=2367640 width=0)

whereas :

explain select count(*) from gains where dategain>='now';

Aggregate (cost=27338.47..27338.47 rows=1 width=0)
-> Index Scan using ix_gains_dategain on gains (cost=0.00..27320.71 rows=7103 width=0)

I have tried :
where dategain>=(select now()-30);
where dategain+30>='now'
where date(dategain)>=date('now')-30
and many other, syntactically absurd :-)

Anyone can help me use this index ?

TIA,

--
Jean-Christophe Boggio
cat(at)thefreecat(dot)org -o)
Independant Consultant and Developer /\\
Delphi, Linux, Perl, PostgreSQL, Debian _\_V

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Stephan Szabo 2001-11-14 00:17:06 Re: Optimization with dates
Previous Message Marc Spitzer 2001-11-13 22:27:37 Re: how do I update or insert efficently in postgres