set enable_seqscan=off; CREATE TABLE test_timestamptz ( i timestamptz ); INSERT INTO test_timestamptz VALUES ( '2004-10-26 03:55:08' ), ( '2004-10-26 04:55:08' ), ( '2004-10-26 05:55:08' ), ( '2004-10-26 08:55:08' ), ( '2004-10-27 09:55:08' ), ( '2004-10-27 10:55:08' ) ; CREATE INDEX idx_timestamptz ON test_timestamptz USING gin (i); SELECT * FROM test_timestamptz WHERE i<'2004-10-26 08:55:08'::timestamptz ORDER BY i; i ------------------------------ Tue Oct 26 03:55:08 2004 PDT Tue Oct 26 04:55:08 2004 PDT Tue Oct 26 05:55:08 2004 PDT (3 rows) SELECT * FROM test_timestamptz WHERE i<='2004-10-26 08:55:08'::timestamptz ORDER BY i; i ------------------------------ Tue Oct 26 03:55:08 2004 PDT Tue Oct 26 04:55:08 2004 PDT Tue Oct 26 05:55:08 2004 PDT Tue Oct 26 08:55:08 2004 PDT (4 rows) SELECT * FROM test_timestamptz WHERE i='2004-10-26 08:55:08'::timestamptz ORDER BY i; i ------------------------------ Tue Oct 26 08:55:08 2004 PDT (1 row) SELECT * FROM test_timestamptz WHERE i>='2004-10-26 08:55:08'::timestamptz ORDER BY i; i ------------------------------ Tue Oct 26 08:55:08 2004 PDT Wed Oct 27 09:55:08 2004 PDT Wed Oct 27 10:55:08 2004 PDT (3 rows) SELECT * FROM test_timestamptz WHERE i>'2004-10-26 08:55:08'::timestamptz ORDER BY i; i ------------------------------ Wed Oct 27 09:55:08 2004 PDT Wed Oct 27 10:55:08 2004 PDT (2 rows) explain (costs off) SELECT * FROM test_timestamptz WHERE i<'2004-10-27'::date ORDER BY i; QUERY PLAN ---------------------------------------------------- Sort Sort Key: i -> Bitmap Heap Scan on test_timestamptz Recheck Cond: (i < '10-27-2004'::date) -> Bitmap Index Scan on idx_timestamptz Index Cond: (i < '10-27-2004'::date) (6 rows) SELECT * FROM test_timestamptz WHERE i<'2004-10-27'::date ORDER BY i; i ------------------------------ Tue Oct 26 03:55:08 2004 PDT Tue Oct 26 04:55:08 2004 PDT Tue Oct 26 05:55:08 2004 PDT Tue Oct 26 08:55:08 2004 PDT (4 rows) SELECT * FROM test_timestamptz WHERE i<='2004-10-27'::date ORDER BY i; i ------------------------------ Tue Oct 26 03:55:08 2004 PDT Tue Oct 26 04:55:08 2004 PDT Tue Oct 26 05:55:08 2004 PDT Tue Oct 26 08:55:08 2004 PDT (4 rows) SELECT * FROM test_timestamptz WHERE i='2004-10-27'::date ORDER BY i; i --- (0 rows) SELECT * FROM test_timestamptz WHERE i>='2004-10-27'::date ORDER BY i; i ------------------------------ Wed Oct 27 09:55:08 2004 PDT Wed Oct 27 10:55:08 2004 PDT (2 rows) SELECT * FROM test_timestamptz WHERE i>'2004-10-27'::date ORDER BY i; i ------------------------------ Wed Oct 27 09:55:08 2004 PDT Wed Oct 27 10:55:08 2004 PDT (2 rows) explain (costs off) SELECT * FROM test_timestamptz WHERE i<'2004-10-26 08:55:08'::timestamp ORDER BY i; QUERY PLAN ----------------------------------------------------------------------------------------- Sort Sort Key: i -> Bitmap Heap Scan on test_timestamptz Recheck Cond: (i < 'Tue Oct 26 08:55:08 2004'::timestamp without time zone) -> Bitmap Index Scan on idx_timestamptz Index Cond: (i < 'Tue Oct 26 08:55:08 2004'::timestamp without time zone) (6 rows) SELECT * FROM test_timestamptz WHERE i<'2004-10-26 08:55:08'::timestamp ORDER BY i; i ------------------------------ Tue Oct 26 03:55:08 2004 PDT Tue Oct 26 04:55:08 2004 PDT Tue Oct 26 05:55:08 2004 PDT (3 rows) SELECT * FROM test_timestamptz WHERE i<='2004-10-26 08:55:08'::timestamp ORDER BY i; i ------------------------------ Tue Oct 26 03:55:08 2004 PDT Tue Oct 26 04:55:08 2004 PDT Tue Oct 26 05:55:08 2004 PDT Tue Oct 26 08:55:08 2004 PDT (4 rows) SELECT * FROM test_timestamptz WHERE i='2004-10-26 08:55:08'::timestamp ORDER BY i; i ------------------------------ Tue Oct 26 08:55:08 2004 PDT (1 row) SELECT * FROM test_timestamptz WHERE i>='2004-10-26 08:55:08'::timestamp ORDER BY i; i ------------------------------ Tue Oct 26 08:55:08 2004 PDT Wed Oct 27 09:55:08 2004 PDT Wed Oct 27 10:55:08 2004 PDT (3 rows) SELECT * FROM test_timestamptz WHERE i>'2004-10-26 08:55:08'::timestamp ORDER BY i; i ------------------------------ Wed Oct 27 09:55:08 2004 PDT Wed Oct 27 10:55:08 2004 PDT (2 rows)