212 lines
4.9 KiB
Plaintext
212 lines
4.9 KiB
Plaintext
|
-- 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)
|
||
|
|