blob: bdc4ef1f4bfa716ae5fa5a67639e3d2c6a11194e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
--
-- RELTIME
--
CREATE TABLE RELTIME_TBL (f1 reltime);
INSERT INTO RELTIME_TBL (f1) VALUES ('@ 1 minute');
INSERT INTO RELTIME_TBL (f1) VALUES ('@ 5 hour');
INSERT INTO RELTIME_TBL (f1) VALUES ('@ 10 day');
INSERT INTO RELTIME_TBL (f1) VALUES ('@ 34 year');
INSERT INTO RELTIME_TBL (f1) VALUES ('@ 3 months');
INSERT INTO RELTIME_TBL (f1) VALUES ('@ 14 seconds ago');
-- badly formatted reltimes
INSERT INTO RELTIME_TBL (f1) VALUES ('badly formatted reltime');
ERROR: invalid input syntax for type reltime: "badly formatted reltime"
LINE 1: INSERT INTO RELTIME_TBL (f1) VALUES ('badly formatted reltim...
^
INSERT INTO RELTIME_TBL (f1) VALUES ('@ 30 eons ago');
ERROR: invalid input syntax for type reltime: "@ 30 eons ago"
LINE 1: INSERT INTO RELTIME_TBL (f1) VALUES ('@ 30 eons ago');
^
-- test reltime operators
SELECT '' AS six, * FROM RELTIME_TBL ORDER BY f1;
six | f1
-----+---------------
| @ 14 secs ago
| @ 1 min
| @ 5 hours
| @ 10 days
| @ 3 mons
| @ 34 years
(6 rows)
SELECT '' AS five, * FROM RELTIME_TBL
WHERE RELTIME_TBL.f1 <> reltime '@ 10 days' ORDER BY f1;
five | f1
------+---------------
| @ 14 secs ago
| @ 1 min
| @ 5 hours
| @ 3 mons
| @ 34 years
(5 rows)
SELECT '' AS three, * FROM RELTIME_TBL
WHERE RELTIME_TBL.f1 <= reltime '@ 5 hours' ORDER BY f1;
three | f1
-------+---------------
| @ 14 secs ago
| @ 1 min
| @ 5 hours
(3 rows)
SELECT '' AS three, * FROM RELTIME_TBL
WHERE RELTIME_TBL.f1 < reltime '@ 1 day' ORDER BY f1;
three | f1
-------+---------------
| @ 14 secs ago
| @ 1 min
| @ 5 hours
(3 rows)
SELECT '' AS one, * FROM RELTIME_TBL
WHERE RELTIME_TBL.f1 = reltime '@ 34 years' ORDER BY f1;
one | f1
-----+------------
| @ 34 years
(1 row)
SELECT '' AS two, * FROM RELTIME_TBL
WHERE RELTIME_TBL.f1 >= reltime '@ 1 month' ORDER BY f1;
two | f1
-----+------------
| @ 3 mons
| @ 34 years
(2 rows)
SELECT '' AS five, * FROM RELTIME_TBL
WHERE RELTIME_TBL.f1 > reltime '@ 3 seconds ago' ORDER BY f1;
five | f1
------+------------
| @ 1 min
| @ 5 hours
| @ 10 days
| @ 3 mons
| @ 34 years
(5 rows)
SELECT '' AS fifteen, r1.*, r2.*
FROM RELTIME_TBL r1, RELTIME_TBL r2
WHERE r1.f1 > r2.f1
ORDER BY r1.f1, r2.f1;
fifteen | f1 | f1
---------+------------+---------------
| @ 1 min | @ 14 secs ago
| @ 5 hours | @ 14 secs ago
| @ 5 hours | @ 1 min
| @ 10 days | @ 14 secs ago
| @ 10 days | @ 1 min
| @ 10 days | @ 5 hours
| @ 3 mons | @ 14 secs ago
| @ 3 mons | @ 1 min
| @ 3 mons | @ 5 hours
| @ 3 mons | @ 10 days
| @ 34 years | @ 14 secs ago
| @ 34 years | @ 1 min
| @ 34 years | @ 5 hours
| @ 34 years | @ 10 days
| @ 34 years | @ 3 mons
(15 rows)
|