📄 interval.out
字号:
---- INTERVAL--SET DATESTYLE = 'ISO';-- check acceptance of "time zone style"SELECT INTERVAL '01:00' AS "One hour"; One hour ---------- 01:00:00(1 row)SELECT INTERVAL '+02:00' AS "Two hours"; Two hours ----------- 02:00:00(1 row)SELECT INTERVAL '-08:00' AS "Eight hours"; Eight hours ------------- -08:00:00(1 row)SELECT INTERVAL '-05' AS "Five hours"; Five hours ------------ -05:00:00(1 row)SELECT INTERVAL '-1 +02:03' AS "22 hours ago..."; 22 hours ago... ----------------- -21:57:00(1 row)SELECT INTERVAL '-1 days +02:03' AS "22 hours ago..."; 22 hours ago... ----------------- -21:57:00(1 row)SELECT INTERVAL '10 years -11 month -12 days +13:14' AS "9 years..."; 9 years... ---------------------------------- 9 years 1 mon -11 days -10:46:00(1 row)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 intervalINSERT INTO INTERVAL_TBL (f1) VALUES ('badly formatted interval');ERROR: invalid input syntax for type interval: "badly formatted interval"INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 30 eons ago');ERROR: invalid input syntax for type interval: "@ 30 eons ago"-- test interval operatorsSELECT '' AS ten, INTERVAL_TBL.*; ten | f1 -----+----------------- | 00:01:00 | 05:00:00 | 10 days | 34 years | 3 mons | -00:00:14 | 1 day 02:03:04 | 6 years | 5 mons | 5 mons 12:00:00(10 rows)SELECT '' AS nine, INTERVAL_TBL.* WHERE INTERVAL_TBL.f1 <> interval '@ 10 days'; nine | f1 ------+----------------- | 00:01:00 | 05:00:00 | 34 years | 3 mons | -00:00:14 | 1 day 02:03:04 | 6 years | 5 mons | 5 mons 12:00:00(9 rows)SELECT '' AS three, INTERVAL_TBL.* WHERE INTERVAL_TBL.f1 <= interval '@ 5 hours'; three | f1 -------+----------- | 00:01:00 | 05:00:00 | -00:00:14(3 rows)SELECT '' AS three, INTERVAL_TBL.* WHERE INTERVAL_TBL.f1 < interval '@ 1 day'; three | f1 -------+----------- | 00:01:00 | 05:00:00 | -00:00:14(3 rows)SELECT '' AS one, INTERVAL_TBL.* WHERE INTERVAL_TBL.f1 = interval '@ 34 years'; one | f1 -----+---------- | 34 years(1 row)SELECT '' AS five, INTERVAL_TBL.* WHERE INTERVAL_TBL.f1 >= interval '@ 1 month'; five | f1 ------+----------------- | 34 years | 3 mons | 6 years | 5 mons | 5 mons 12:00:00(5 rows)SELECT '' AS nine, INTERVAL_TBL.* WHERE INTERVAL_TBL.f1 > interval '@ 3 seconds ago'; nine | f1 ------+----------------- | 00:01:00 | 05:00:00 | 10 days | 34 years | 3 mons | 1 day 02:03:04 | 6 years | 5 mons | 5 mons 12:00:00(9 rows)SELECT '' AS fortyfive, r1.*, r2.* FROM INTERVAL_TBL r1, INTERVAL_TBL r2 WHERE r1.f1 > r2.f1 ORDER BY r1.f1, r2.f1; fortyfive | f1 | f1 -----------+-----------------+----------------- | 00:01:00 | -00:00:14 | 05:00:00 | -00:00:14 | 05:00:00 | 00:01:00 | 1 day 02:03:04 | -00:00:14 | 1 day 02:03:04 | 00:01:00 | 1 day 02:03:04 | 05:00:00 | 10 days | -00:00:14 | 10 days | 00:01:00 | 10 days | 05:00:00 | 10 days | 1 day 02:03:04 | 3 mons | -00:00:14 | 3 mons | 00:01:00 | 3 mons | 05:00:00 | 3 mons | 1 day 02:03:04 | 3 mons | 10 days | 5 mons | -00:00:14 | 5 mons | 00:01:00 | 5 mons | 05:00:00 | 5 mons | 1 day 02:03:04 | 5 mons | 10 days | 5 mons | 3 mons | 5 mons 12:00:00 | -00:00:14 | 5 mons 12:00:00 | 00:01:00 | 5 mons 12:00:00 | 05:00:00 | 5 mons 12:00:00 | 1 day 02:03:04 | 5 mons 12:00:00 | 10 days | 5 mons 12:00:00 | 3 mons | 5 mons 12:00:00 | 5 mons | 6 years | -00:00:14 | 6 years | 00:01:00 | 6 years | 05:00:00 | 6 years | 1 day 02:03:04 | 6 years | 10 days | 6 years | 3 mons | 6 years | 5 mons | 6 years | 5 mons 12:00:00 | 34 years | -00:00:14 | 34 years | 00:01:00 | 34 years | 05:00:00 | 34 years | 1 day 02:03:04 | 34 years | 10 days | 34 years | 3 mons | 34 years | 5 mons | 34 years | 5 mons 12:00:00 | 34 years | 6 years(45 rows)SET DATESTYLE = 'postgres';SELECT '' AS ten, INTERVAL_TBL.*; ten | f1 -----+------------------------------- | @ 1 min | @ 5 hours | @ 10 days | @ 34 years | @ 3 mons | @ 14 secs ago | @ 1 day 2 hours 3 mins 4 secs | @ 6 years | @ 5 mons | @ 5 mons 12 hours(10 rows)-- test avg(interval), which is somewhat fragile since people have been-- known to change the allowed input syntax for type interval without-- updating pg_aggregate.agginitvalselect avg(f1) from interval_tbl; avg ------------------------------------------------- @ 4 years 1 mon 10 days 4 hours 18 mins 23 secs(1 row)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -