-- timestamp check CREATE TABLE timestamptmp (a timestamp); \copy timestamptmp from 'data/timestamp.data' SET enable_seqscan=on; SELECT count(*) FROM timestamptmp WHERE a < '2004-10-26 08:55:08'; count ------- 278 (1 row) SELECT count(*) FROM timestamptmp WHERE a <= '2004-10-26 08:55:08'; count ------- 279 (1 row) SELECT count(*) FROM timestamptmp WHERE a = '2004-10-26 08:55:08'; count ------- 1 (1 row) SELECT count(*) FROM timestamptmp WHERE a >= '2004-10-26 08:55:08'; count ------- 290 (1 row) SELECT count(*) FROM timestamptmp WHERE a > '2004-10-26 08:55:08'; count ------- 289 (1 row) SELECT a, a <-> '2004-10-26 08:55:08' FROM timestamptmp ORDER BY a <-> '2004-10-26 08:55:08' LIMIT 3; a | ?column? --------------------------+------------------------------------ Tue Oct 26 08:55:08 2004 | @ 0 Sun Oct 31 06:35:03 2004 | @ 4 days 21 hours 39 mins 55 secs Mon Nov 29 20:12:43 2004 | @ 34 days 11 hours 17 mins 35 secs (3 rows) CREATE INDEX timestampidx ON timestamptmp USING gist ( a ); SET enable_seqscan=off; SELECT count(*) FROM timestamptmp WHERE a < '2004-10-26 08:55:08'::timestamp; count ------- 278 (1 row) SELECT count(*) FROM timestamptmp WHERE a <= '2004-10-26 08:55:08'::timestamp; count ------- 279 (1 row) SELECT count(*) FROM timestamptmp WHERE a = '2004-10-26 08:55:08'::timestamp; count ------- 1 (1 row) SELECT count(*) FROM timestamptmp WHERE a >= '2004-10-26 08:55:08'::timestamp; count ------- 290 (1 row) SELECT count(*) FROM timestamptmp WHERE a > '2004-10-26 08:55:08'::timestamp; count ------- 289 (1 row) EXPLAIN (COSTS OFF) SELECT a, a <-> '2004-10-26 08:55:08' FROM timestamptmp ORDER BY a <-> '2004-10-26 08:55:08' LIMIT 3; QUERY PLAN ----------------------------------------------------------------------------------- Limit -> Index Only Scan using timestampidx on timestamptmp Order By: (a <-> 'Tue Oct 26 08:55:08 2004'::timestamp without time zone) (3 rows) SELECT a, a <-> '2004-10-26 08:55:08' FROM timestamptmp ORDER BY a <-> '2004-10-26 08:55:08' LIMIT 3; a | ?column? --------------------------+------------------------------------ Tue Oct 26 08:55:08 2004 | @ 0 Sun Oct 31 06:35:03 2004 | @ 4 days 21 hours 39 mins 55 secs Mon Nov 29 20:12:43 2004 | @ 34 days 11 hours 17 mins 35 secs (3 rows)