On Tue, 12 Dec 2006, Erik Jones wrote: > Belinda M. Giardine wrote: > > This should be simple but I am missing something. I am trying to extract > > all records entered after a given date. The table has a field > > date_entered which is a timestamp. In this particular case I am not > > worried about time. > > > > I have tried: > > select id from main_table where > > date_entered > to_timestamp('January 2006', 'Month YYYY'); > > > > select id from main_table where > > (to_timestamp('January 2006', 'Month YYYY'), now()) overlaps (date_entered, date_entered); > > > > Both of these return all the rows in the table. Half of the rows are > > dated 2000-06-22 12:00:00. > > > > PostgreSQL version 8.1.4 > > > I think people often make date comparisons too difficult in postgres. > > select id > from main_table > where date_entered >= '2006-01-01'; > > There are built in conversions for formatted date strings. > > -- > erik jones <erik@xxxxxxxxxx> > software development > emma(r) > Thanks that works. But I am trying to understand why the others did not, especially my first attempt. Further testing shows that select id, date_entered from main_table where date_entered >= to_timestamp('2006 January', 'YYYY Month'); works, but select id, date_entered from main_table where date_entered >= to_timestamp('January 2006', 'Month YYYY'); does not. The order of the fields in the to_timestamp function changes the timestamp produced. Should it be this way? hbvar=# select to_timestamp('January 2006', 'Month YYYY'); to_timestamp ------------------------ 0006-01-01 00:00:00-05 (1 row) hbvar=# select to_timestamp('2006 January', 'YYYY Month'); to_timestamp ------------------------ 2006-01-01 00:00:00-05 (1 row) Belinda