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.71rows=7103 width=0)
I have tried : where dategain>=(select now()-30); where dategain+30>='now' where date(dategain)>=date('now')-30 and
manyother, syntactically absurd :-)
Anyone can help me use this index ?
TIA,
--
Jean-Christophe Boggio
cat@thefreecat.org -o)
Independant Consultant and Developer /\\
Delphi, Linux, Perl, PostgreSQL, Debian _\_V