aboutsummaryrefslogtreecommitdiff
path: root/src/test/regress/sql/interval.sql
blob: f4ca0a7371b8f60a2be6870c8f615a1ed35ceea9 (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
--
-- INTERVAL
--

SET DATESTYLE = DEFAULT;

-- check acceptance of "time zone style"
SELECT INTERVAL '01:00';
SELECT INTERVAL '+02:00';
SELECT INTERVAL '-08:00';
SELECT INTERVAL '-05';
SELECT INTERVAL '-1 +02:03';
SELECT INTERVAL '-1 days +02:03';
SELECT INTERVAL '10 years -11 month -12 days +13:14';

CREATE TABLE INTERVAL_TBL (f1 interval);

INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 1 minute');
INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 5 hour');
INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 10 day');
INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 34 year');
INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 3 months');
INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 14 seconds ago');
INSERT INTO INTERVAL_TBL (f1) VALUES ('1 day 2 hours 3 minutes 4 seconds');
INSERT INTO INTERVAL_TBL (f1) VALUES ('6 years');
INSERT INTO INTERVAL_TBL (f1) VALUES ('5 months');
INSERT INTO INTERVAL_TBL (f1) VALUES ('5 months 12 hours');

-- badly formatted interval
INSERT INTO INTERVAL_TBL (f1) VALUES ('badly formatted interval');
INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 30 eons ago');

-- test interval operators

SELECT '' AS ten, INTERVAL_TBL.*;

SELECT '' AS nine, INTERVAL_TBL.*
   WHERE INTERVAL_TBL.f1 <> interval '@ 10 days';

SELECT '' AS three, INTERVAL_TBL.*
   WHERE INTERVAL_TBL.f1 <= interval '@ 5 hours';

SELECT '' AS three, INTERVAL_TBL.*
   WHERE INTERVAL_TBL.f1 < interval '@ 1 day';

SELECT '' AS one, INTERVAL_TBL.*
   WHERE INTERVAL_TBL.f1 = interval '@ 34 years';

SELECT '' AS five, INTERVAL_TBL.* 
   WHERE INTERVAL_TBL.f1 >= interval '@ 1 month';

SELECT '' AS nine, INTERVAL_TBL.*
   WHERE INTERVAL_TBL.f1 > interval '@ 3 seconds ago';

SELECT '' AS fortyfive, r1.*, r2.*
   FROM INTERVAL_TBL r1, INTERVAL_TBL r2
   WHERE r1.f1 > r2.f1
   ORDER BY r1.f1, r2.f1;

SET DATESTYLE = 'postgres';

SELECT '' AS ten, INTERVAL_TBL.*;