-- timestamptz check CREATE TABLE timestamptztmp (a timestamptz); \copy timestamptztmp from 'data/timestamptz.data' SET enable_seqscan=on; SELECT count(*) FROM timestamptztmp WHERE a < '2018-12-18 10:59:54 GMT+3'; count ------- 391 (1 row) SELECT count(*) FROM timestamptztmp WHERE a <= '2018-12-18 10:59:54 GMT+3'; count ------- 392 (1 row) SELECT count(*) FROM timestamptztmp WHERE a = '2018-12-18 10:59:54 GMT+3'; count ------- 1 (1 row) SELECT count(*) FROM timestamptztmp WHERE a >= '2018-12-18 10:59:54 GMT+3'; count ------- 158 (1 row) SELECT count(*) FROM timestamptztmp WHERE a > '2018-12-18 10:59:54 GMT+3'; count ------- 157 (1 row) SELECT count(*) FROM timestamptztmp WHERE a < '2018-12-18 10:59:54 GMT+2'; count ------- 391 (1 row) SELECT count(*) FROM timestamptztmp WHERE a <= '2018-12-18 10:59:54 GMT+2'; count ------- 391 (1 row) SELECT count(*) FROM timestamptztmp WHERE a = '2018-12-18 10:59:54 GMT+2'; count ------- 0 (1 row) SELECT count(*) FROM timestamptztmp WHERE a >= '2018-12-18 10:59:54 GMT+2'; count ------- 158 (1 row) SELECT count(*) FROM timestamptztmp WHERE a > '2018-12-18 10:59:54 GMT+2'; count ------- 158 (1 row) SELECT count(*) FROM timestamptztmp WHERE a < '2018-12-18 10:59:54 GMT+4'; count ------- 392 (1 row) SELECT count(*) FROM timestamptztmp WHERE a <= '2018-12-18 10:59:54 GMT+4'; count ------- 392 (1 row) SELECT count(*) FROM timestamptztmp WHERE a = '2018-12-18 10:59:54 GMT+4'; count ------- 0 (1 row) SELECT count(*) FROM timestamptztmp WHERE a >= '2018-12-18 10:59:54 GMT+4'; count ------- 157 (1 row) SELECT count(*) FROM timestamptztmp WHERE a > '2018-12-18 10:59:54 GMT+4'; count ------- 157 (1 row) SELECT a, a <-> '2018-12-18 10:59:54 GMT+2' FROM timestamptztmp ORDER BY a <-> '2018-12-18 10:59:54 GMT+2' LIMIT 3; a | ?column? ------------------------------+----------------------------------- Tue Dec 18 05:59:54 2018 PST | @ 1 hour Thu Jan 10 03:01:34 2019 PST | @ 22 days 22 hours 1 min 40 secs Thu Jan 24 12:28:12 2019 PST | @ 37 days 7 hours 28 mins 18 secs (3 rows) CREATE INDEX timestamptzidx ON timestamptztmp USING gist ( a ); SET enable_seqscan=off; SELECT count(*) FROM timestamptztmp WHERE a < '2018-12-18 10:59:54 GMT+3'::timestamptz; count ------- 391 (1 row) SELECT count(*) FROM timestamptztmp WHERE a <= '2018-12-18 10:59:54 GMT+3'::timestamptz; count ------- 392 (1 row) SELECT count(*) FROM timestamptztmp WHERE a = '2018-12-18 10:59:54 GMT+3'::timestamptz; count ------- 1 (1 row) SELECT count(*) FROM timestamptztmp WHERE a >= '2018-12-18 10:59:54 GMT+3'::timestamptz; count ------- 158 (1 row) SELECT count(*) FROM timestamptztmp WHERE a > '2018-12-18 10:59:54 GMT+3'::timestamptz; count ------- 157 (1 row) SELECT count(*) FROM timestamptztmp WHERE a < '2018-12-18 10:59:54 GMT+2'::timestamptz; count ------- 391 (1 row) SELECT count(*) FROM timestamptztmp WHERE a <= '2018-12-18 10:59:54 GMT+2'::timestamptz; count ------- 391 (1 row) SELECT count(*) FROM timestamptztmp WHERE a = '2018-12-18 10:59:54 GMT+2'::timestamptz; count ------- 0 (1 row) SELECT count(*) FROM timestamptztmp WHERE a >= '2018-12-18 10:59:54 GMT+2'::timestamptz; count ------- 158 (1 row) SELECT count(*) FROM timestamptztmp WHERE a > '2018-12-18 10:59:54 GMT+2'::timestamptz; count ------- 158 (1 row) SELECT count(*) FROM timestamptztmp WHERE a < '2018-12-18 10:59:54 GMT+4'::timestamptz; count ------- 392 (1 row) SELECT count(*) FROM timestamptztmp WHERE a <= '2018-12-18 10:59:54 GMT+4'::timestamptz; count ------- 392 (1 row) SELECT count(*) FROM timestamptztmp WHERE a = '2018-12-18 10:59:54 GMT+4'::timestamptz; count ------- 0 (1 row) SELECT count(*) FROM timestamptztmp WHERE a >= '2018-12-18 10:59:54 GMT+4'::timestamptz; count ------- 157 (1 row) SELECT count(*) FROM timestamptztmp WHERE a > '2018-12-18 10:59:54 GMT+4'::timestamptz; count ------- 157 (1 row) EXPLAIN (COSTS OFF) SELECT a, a <-> '2018-12-18 10:59:54 GMT+2' FROM timestamptztmp ORDER BY a <-> '2018-12-18 10:59:54 GMT+2' LIMIT 3; QUERY PLAN ------------------------------------------------------------------------------------ Limit -> Index Only Scan using timestamptzidx on timestamptztmp Order By: (a <-> 'Tue Dec 18 04:59:54 2018 PST'::timestamp with time zone) (3 rows) SELECT a, a <-> '2018-12-18 10:59:54 GMT+2' FROM timestamptztmp ORDER BY a <-> '2018-12-18 10:59:54 GMT+2' LIMIT 3; a | ?column? ------------------------------+----------------------------------- Tue Dec 18 05:59:54 2018 PST | @ 1 hour Thu Jan 10 03:01:34 2019 PST | @ 22 days 22 hours 1 min 40 secs Thu Jan 24 12:28:12 2019 PST | @ 37 days 7 hours 28 mins 18 secs (3 rows)