99-- daylight savings time right for times prior to Unix epoch (jan 1 1970).
1010--
1111CREATE TABLE ABSTIME_TBL (f1 abstime);
12+ BEGIN;
13+ INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'current');
14+ INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'now');
15+ SELECT count(*) AS two FROM ABSTIME_TBL WHERE f1 = 'now' ;
16+ two
17+ -----
18+ 2
19+ (1 row)
20+
21+ END;
22+ DELETE FROM ABSTIME_TBL;
1223INSERT INTO ABSTIME_TBL (f1) VALUES ('Jan 14, 1973 03:14:21');
13- -- was INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'now'):
1424INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'Mon May 1 00:30:30 1995');
1525INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'epoch');
16- INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'current');
1726INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'infinity');
1827INSERT INTO ABSTIME_TBL (f1) VALUES (abstime '-infinity');
1928INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'May 10, 1947 23:59:12');
@@ -32,21 +41,20 @@ SELECT '' AS eight, ABSTIME_TBL.*;
3241-------+------------------------------
3342 | Sun Jan 14 03:14:21 1973 PST
3443 | Mon May 01 00:30:30 1995 PDT
35- | epoch
36- | current
44+ | Wed Dec 31 16:00:00 1969 PST
3745 | infinity
3846 | -infinity
3947 | Sat May 10 23:59:12 1947 PDT
4048 | invalid
41- (8 rows)
49+ (7 rows)
4250
4351SELECT '' AS six, ABSTIME_TBL.*
4452 WHERE ABSTIME_TBL.f1 < abstime 'Jun 30, 2001';
4553 six | f1
4654-----+------------------------------
4755 | Sun Jan 14 03:14:21 1973 PST
4856 | Mon May 01 00:30:30 1995 PDT
49- |epoch
57+ |Wed Dec 31 16:00:00 1969 PST
5058 | -infinity
5159 | Sat May 10 23:59:12 1947 PDT
5260(5 rows)
@@ -57,38 +65,29 @@ SELECT '' AS six, ABSTIME_TBL.*
5765-----+------------------------------
5866 | Sun Jan 14 03:14:21 1973 PST
5967 | Mon May 01 00:30:30 1995 PDT
60- | epoch
61- | current
68+ | Wed Dec 31 16:00:00 1969 PST
6269 | infinity
6370 | Sat May 10 23:59:12 1947 PDT
6471 | invalid
65- (7 rows)
72+ (6 rows)
6673
6774SELECT '' AS six, ABSTIME_TBL.*
6875 WHERE abstime 'May 10, 1947 23:59:12' <> ABSTIME_TBL.f1;
6976 six | f1
7077-----+------------------------------
7178 | Sun Jan 14 03:14:21 1973 PST
7279 | Mon May 01 00:30:30 1995 PDT
73- | epoch
74- | current
80+ | Wed Dec 31 16:00:00 1969 PST
7581 | infinity
7682 | -infinity
7783 | invalid
78- (7 rows)
79-
80- SELECT '' AS one, ABSTIME_TBL.*
81- WHERE abstime 'current' = ABSTIME_TBL.f1;
82- one | f1
83- -----+---------
84- | current
85- (1 row)
84+ (6 rows)
8685
8786SELECT '' AS three, ABSTIME_TBL.*
8887 WHERE abstime 'epoch' >= ABSTIME_TBL.f1;
8988 three | f1
9089-------+------------------------------
91- |epoch
90+ |Wed Dec 31 16:00:00 1969 PST
9291 | -infinity
9392 | Sat May 10 23:59:12 1947 PDT
9493(3 rows)
@@ -98,7 +97,7 @@ SELECT '' AS four, ABSTIME_TBL.*
9897 four | f1
9998------+------------------------------
10099 | Sun Jan 14 03:14:21 1973 PST
101- |epoch
100+ |Wed Dec 31 16:00:00 1969 PST
102101 | -infinity
103102 | Sat May 10 23:59:12 1947 PDT
104103(4 rows)
@@ -110,20 +109,20 @@ SELECT '' AS four, ABSTIME_TBL.*
110109------+------------------------------
111110 | Sun Jan 14 03:14:21 1973 PST
112111 | Mon May 01 00:30:30 1995 PDT
113- |epoch
112+ |Wed Dec 31 16:00:00 1969 PST
114113(3 rows)
115114
116115SELECT '' AS four, f1 AS abstime,
117116 date_part('year', f1) AS year, date_part('month', f1) AS month,
118117 date_part('day',f1) AS day, date_part('hour', f1) AS hour,
119118 date_part('minute', f1) AS minute, date_part('second', f1) AS second
120119 FROM ABSTIME_TBL
121- WHERE isfinite(f1) and f1 <> abstime 'current'
120+ WHERE isfinite(f1)
122121 ORDER BY abstime;
123122 four | abstime | year | month | day | hour | minute | second
124123------+------------------------------+------+-------+-----+------+--------+--------
125124 | Sat May 10 23:59:12 1947 PDT | 1947 | 5 | 10 | 23 | 59 | 12
126- |epoch | 1969 | 12 | 31 | 16 | 0 | 0
125+ |Wed Dec 31 16:00:00 1969 PST | 1969 | 12 | 31 | 16 | 0 | 0
127126 | Sun Jan 14 03:14:21 1973 PST | 1973 | 1 | 14 | 3 | 14 | 21
128127 | Mon May 01 00:30:30 1995 PDT | 1995 | 5 | 1 | 0 | 30 | 30
129128(4 rows)