mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-04 17:06:52 +02:00
d83105539a
Include a few new tests for datetime/timespan arithmetic.
106 lines
2.7 KiB
Plaintext
106 lines
2.7 KiB
Plaintext
--
|
|
-- 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: Bad reltime external representation 'badly formatted reltime'
|
|
INSERT INTO RELTIME_TBL (f1) VALUES ('@ 30 eons ago');
|
|
ERROR: Bad reltime external representation '@ 30 eons ago'
|
|
-- test reltime operators
|
|
SELECT '' AS six, RELTIME_TBL.*;
|
|
six | f1
|
|
-----+---------------
|
|
| @ 1 min
|
|
| @ 5 hours
|
|
| @ 10 days
|
|
| @ 34 years
|
|
| @ 3 mons
|
|
| @ 14 secs ago
|
|
(6 rows)
|
|
|
|
SELECT '' AS five, RELTIME_TBL.*
|
|
WHERE RELTIME_TBL.f1 <> reltime '@ 10 days';
|
|
five | f1
|
|
------+---------------
|
|
| @ 1 min
|
|
| @ 5 hours
|
|
| @ 34 years
|
|
| @ 3 mons
|
|
| @ 14 secs ago
|
|
(5 rows)
|
|
|
|
SELECT '' AS three, RELTIME_TBL.*
|
|
WHERE RELTIME_TBL.f1 <= reltime '@ 5 hours';
|
|
three | f1
|
|
-------+---------------
|
|
| @ 1 min
|
|
| @ 5 hours
|
|
| @ 14 secs ago
|
|
(3 rows)
|
|
|
|
SELECT '' AS three, RELTIME_TBL.*
|
|
WHERE RELTIME_TBL.f1 < reltime '@ 1 day';
|
|
three | f1
|
|
-------+---------------
|
|
| @ 1 min
|
|
| @ 5 hours
|
|
| @ 14 secs ago
|
|
(3 rows)
|
|
|
|
SELECT '' AS one, RELTIME_TBL.*
|
|
WHERE RELTIME_TBL.f1 = reltime '@ 34 years';
|
|
one | f1
|
|
-----+------------
|
|
| @ 34 years
|
|
(1 row)
|
|
|
|
SELECT '' AS two, RELTIME_TBL.*
|
|
WHERE RELTIME_TBL.f1 >= reltime '@ 1 month';
|
|
two | f1
|
|
-----+------------
|
|
| @ 34 years
|
|
| @ 3 mons
|
|
(2 rows)
|
|
|
|
SELECT '' AS five, RELTIME_TBL.*
|
|
WHERE RELTIME_TBL.f1 > reltime '@ 3 seconds ago';
|
|
five | f1
|
|
------+------------
|
|
| @ 1 min
|
|
| @ 5 hours
|
|
| @ 10 days
|
|
| @ 34 years
|
|
| @ 3 mons
|
|
(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)
|
|
|