Commit 1f075a32 authored by Thomas G. Lockhart's avatar Thomas G. Lockhart

Add separate regression tests for timetz and the new timestamptz type.

Modify the timestamp test to reflect the "no time zone" behavior of this
 new code; timestamptz resembles the old timestamp code.
parent 44f18333
...@@ -9,11 +9,20 @@ ...@@ -9,11 +9,20 @@
-- daylight savings time right for times prior to Unix epoch (jan 1 1970). -- daylight savings time right for times prior to Unix epoch (jan 1 1970).
-- --
CREATE TABLE ABSTIME_TBL (f1 abstime); CREATE TABLE ABSTIME_TBL (f1 abstime);
BEGIN;
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'current');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'now');
SELECT count(*) AS two FROM ABSTIME_TBL WHERE f1 = 'now' ;
two
-----
2
(1 row)
END;
DELETE FROM ABSTIME_TBL;
INSERT INTO ABSTIME_TBL (f1) VALUES ('Jan 14, 1973 03:14:21'); INSERT INTO ABSTIME_TBL (f1) VALUES ('Jan 14, 1973 03:14:21');
-- was INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'now'):
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'Mon May 1 00:30:30 1995'); INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'Mon May 1 00:30:30 1995');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'epoch'); INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'epoch');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'current');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'infinity'); INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'infinity');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime '-infinity'); INSERT INTO ABSTIME_TBL (f1) VALUES (abstime '-infinity');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'May 10, 1947 23:59:12'); INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'May 10, 1947 23:59:12');
...@@ -32,13 +41,12 @@ SELECT '' AS eight, ABSTIME_TBL.*; ...@@ -32,13 +41,12 @@ SELECT '' AS eight, ABSTIME_TBL.*;
-------+------------------------------ -------+------------------------------
| Sun Jan 14 03:14:21 1973 PST | Sun Jan 14 03:14:21 1973 PST
| Mon May 01 00:30:30 1995 PDT | Mon May 01 00:30:30 1995 PDT
| epoch | Wed Dec 31 16:00:00 1969 PST
| current
| infinity | infinity
| -infinity | -infinity
| Sat May 10 23:59:12 1947 PST | Sat May 10 23:59:12 1947 PST
| invalid | invalid
(8 rows) (7 rows)
SELECT '' AS six, ABSTIME_TBL.* SELECT '' AS six, ABSTIME_TBL.*
WHERE ABSTIME_TBL.f1 < abstime 'Jun 30, 2001'; WHERE ABSTIME_TBL.f1 < abstime 'Jun 30, 2001';
...@@ -46,7 +54,7 @@ SELECT '' AS six, ABSTIME_TBL.* ...@@ -46,7 +54,7 @@ SELECT '' AS six, ABSTIME_TBL.*
-----+------------------------------ -----+------------------------------
| Sun Jan 14 03:14:21 1973 PST | Sun Jan 14 03:14:21 1973 PST
| Mon May 01 00:30:30 1995 PDT | Mon May 01 00:30:30 1995 PDT
| epoch | Wed Dec 31 16:00:00 1969 PST
| -infinity | -infinity
| Sat May 10 23:59:12 1947 PST | Sat May 10 23:59:12 1947 PST
(5 rows) (5 rows)
...@@ -57,12 +65,11 @@ SELECT '' AS six, ABSTIME_TBL.* ...@@ -57,12 +65,11 @@ SELECT '' AS six, ABSTIME_TBL.*
-----+------------------------------ -----+------------------------------
| Sun Jan 14 03:14:21 1973 PST | Sun Jan 14 03:14:21 1973 PST
| Mon May 01 00:30:30 1995 PDT | Mon May 01 00:30:30 1995 PDT
| epoch | Wed Dec 31 16:00:00 1969 PST
| current
| infinity | infinity
| Sat May 10 23:59:12 1947 PST | Sat May 10 23:59:12 1947 PST
| invalid | invalid
(7 rows) (6 rows)
SELECT '' AS six, ABSTIME_TBL.* SELECT '' AS six, ABSTIME_TBL.*
WHERE abstime 'May 10, 1947 23:59:12' <> ABSTIME_TBL.f1; WHERE abstime 'May 10, 1947 23:59:12' <> ABSTIME_TBL.f1;
...@@ -70,25 +77,17 @@ SELECT '' AS six, ABSTIME_TBL.* ...@@ -70,25 +77,17 @@ SELECT '' AS six, ABSTIME_TBL.*
-----+------------------------------ -----+------------------------------
| Sun Jan 14 03:14:21 1973 PST | Sun Jan 14 03:14:21 1973 PST
| Mon May 01 00:30:30 1995 PDT | Mon May 01 00:30:30 1995 PDT
| epoch | Wed Dec 31 16:00:00 1969 PST
| current
| infinity | infinity
| -infinity | -infinity
| invalid | invalid
(7 rows) (6 rows)
SELECT '' AS one, ABSTIME_TBL.*
WHERE abstime 'current' = ABSTIME_TBL.f1;
one | f1
-----+---------
| current
(1 row)
SELECT '' AS three, ABSTIME_TBL.* SELECT '' AS three, ABSTIME_TBL.*
WHERE abstime 'epoch' >= ABSTIME_TBL.f1; WHERE abstime 'epoch' >= ABSTIME_TBL.f1;
three | f1 three | f1
-------+------------------------------ -------+------------------------------
| epoch | Wed Dec 31 16:00:00 1969 PST
| -infinity | -infinity
| Sat May 10 23:59:12 1947 PST | Sat May 10 23:59:12 1947 PST
(3 rows) (3 rows)
...@@ -98,7 +97,7 @@ SELECT '' AS four, ABSTIME_TBL.* ...@@ -98,7 +97,7 @@ SELECT '' AS four, ABSTIME_TBL.*
four | f1 four | f1
------+------------------------------ ------+------------------------------
| Sun Jan 14 03:14:21 1973 PST | Sun Jan 14 03:14:21 1973 PST
| epoch | Wed Dec 31 16:00:00 1969 PST
| -infinity | -infinity
| Sat May 10 23:59:12 1947 PST | Sat May 10 23:59:12 1947 PST
(4 rows) (4 rows)
...@@ -110,7 +109,7 @@ SELECT '' AS four, ABSTIME_TBL.* ...@@ -110,7 +109,7 @@ SELECT '' AS four, ABSTIME_TBL.*
------+------------------------------ ------+------------------------------
| Sun Jan 14 03:14:21 1973 PST | Sun Jan 14 03:14:21 1973 PST
| Mon May 01 00:30:30 1995 PDT | Mon May 01 00:30:30 1995 PDT
| epoch | Wed Dec 31 16:00:00 1969 PST
(3 rows) (3 rows)
SELECT '' AS four, f1 AS abstime, SELECT '' AS four, f1 AS abstime,
...@@ -118,12 +117,12 @@ SELECT '' AS four, f1 AS abstime, ...@@ -118,12 +117,12 @@ SELECT '' AS four, f1 AS abstime,
date_part('day',f1) AS day, date_part('hour', f1) AS hour, date_part('day',f1) AS day, date_part('hour', f1) AS hour,
date_part('minute', f1) AS minute, date_part('second', f1) AS second date_part('minute', f1) AS minute, date_part('second', f1) AS second
FROM ABSTIME_TBL FROM ABSTIME_TBL
WHERE isfinite(f1) and f1 <> abstime 'current' WHERE isfinite(f1)
ORDER BY abstime; ORDER BY abstime;
four | abstime | year | month | day | hour | minute | second four | abstime | year | month | day | hour | minute | second
------+------------------------------+------+-------+-----+------+--------+-------- ------+------------------------------+------+-------+-----+------+--------+--------
| Sat May 10 23:59:12 1947 PST | 1947 | 5 | 10 | 23 | 59 | 12 | Sat May 10 23:59:12 1947 PST | 1947 | 5 | 10 | 23 | 59 | 12
| epoch | 1969 | 12 | 31 | 16 | 0 | 0 | Wed Dec 31 16:00:00 1969 PST | 1969 | 12 | 31 | 16 | 0 | 0
| Sun Jan 14 03:14:21 1973 PST | 1973 | 1 | 14 | 3 | 14 | 21 | Sun Jan 14 03:14:21 1973 PST | 1973 | 1 | 14 | 3 | 14 | 21
| Mon May 01 00:30:30 1995 PDT | 1995 | 5 | 1 | 0 | 30 | 30 | Mon May 01 00:30:30 1995 PDT | 1995 | 5 | 1 | 0 | 30 | 30
(4 rows) (4 rows)
......
...@@ -127,7 +127,7 @@ SELECT '' AS thirty, p.f1, l.s, p.f1 ## l.s AS closest ...@@ -127,7 +127,7 @@ SELECT '' AS thirty, p.f1, l.s, p.f1 ## l.s AS closest
| (-5,-12) | [(10,-10),(-3,-4)] | (-1.60487804878049,-4.64390243902439) | (-5,-12) | [(10,-10),(-3,-4)] | (-1.60487804878049,-4.64390243902439)
| (10,10) | [(10,-10),(-3,-4)] | (2.39024390243902,-6.48780487804878) | (10,10) | [(10,-10),(-3,-4)] | (2.39024390243902,-6.48780487804878)
| (0,0) | [(-1000000,200),(300000,-40)] | (0.0028402365895872,15.384614860264) | (0,0) | [(-1000000,200),(300000,-40)] | (0.0028402365895872,15.384614860264)
| (-10,0) | [(-1000000,200),(300000,-40)] | (-9.99715942258202,15.3864610140472) | (-10,0) | [(-1000000,200),(300000,-40)] | (-9.99715942258202,15.3864610140473)
| (-3,4) | [(-1000000,200),(300000,-40)] | (-2.99789812267519,15.3851688427303) | (-3,4) | [(-1000000,200),(300000,-40)] | (-2.99789812267519,15.3851688427303)
| (5.1,34.5) | [(-1000000,200),(300000,-40)] | (5.09647083221496,15.3836744976925) | (5.1,34.5) | [(-1000000,200),(300000,-40)] | (5.09647083221496,15.3836744976925)
| (-5,-12) | [(-1000000,200),(300000,-40)] | (-4.99494420845634,15.3855375281616) | (-5,-12) | [(-1000000,200),(300000,-40)] | (-4.99494420845634,15.3855375281616)
...@@ -152,7 +152,7 @@ SELECT '' as six, box(f1) AS box FROM CIRCLE_TBL; ...@@ -152,7 +152,7 @@ SELECT '' as six, box(f1) AS box FROM CIRCLE_TBL;
| (2.12132034355964,2.12132034355964),(-2.12132034355964,-2.12132034355964) | (2.12132034355964,2.12132034355964),(-2.12132034355964,-2.12132034355964)
| (71.7106781186548,72.7106781186548),(-69.7106781186548,-68.7106781186548) | (71.7106781186548,72.7106781186548),(-69.7106781186548,-68.7106781186548)
| (4.53553390593274,6.53553390593274),(-2.53553390593274,-0.535533905932738) | (4.53553390593274,6.53553390593274),(-2.53553390593274,-0.535533905932738)
| (3.12132034355964,4.12132034355964),(-1.12132034355964,-0.121320343559643) | (3.12132034355964,4.12132034355964),(-1.12132034355964,-0.121320343559642)
| (107.071067811865,207.071067811865),(92.9289321881345,192.928932188135) | (107.071067811865,207.071067811865),(92.9289321881345,192.928932188135)
| (170.710678118655,70.7106781186548),(29.2893218813452,-70.7106781186548) | (170.710678118655,70.7106781186548),(29.2893218813452,-70.7106781186548)
(6 rows) (6 rows)
...@@ -504,7 +504,7 @@ SELECT '' AS twentyfour, c1.f1 AS circle, p1.f1 AS point, (p1.f1 <-> c1.f1) AS d ...@@ -504,7 +504,7 @@ SELECT '' AS twentyfour, c1.f1 AS circle, p1.f1 AS point, (p1.f1 <-> c1.f1) AS d
ORDER BY distance, circle, point using <<; ORDER BY distance, circle, point using <<;
twentyfour | circle | point | distance twentyfour | circle | point | distance
------------+----------------+------------+------------------- ------------+----------------+------------+-------------------
| <(100,0),100> | (5.1,34.5) | 0.976531926977964 | <(100,0),100> | (5.1,34.5) | 0.976531926977965
| <(1,2),3> | (-3,4) | 1.47213595499958 | <(1,2),3> | (-3,4) | 1.47213595499958
| <(0,0),3> | (-3,4) | 2 | <(0,0),3> | (-3,4) | 2
| <(100,0),100> | (-3,4) | 3.07764064044151 | <(100,0),100> | (-3,4) | 3.07764064044151
...@@ -519,7 +519,7 @@ SELECT '' AS twentyfour, c1.f1 AS circle, p1.f1 AS point, (p1.f1 <-> c1.f1) AS d ...@@ -519,7 +519,7 @@ SELECT '' AS twentyfour, c1.f1 AS circle, p1.f1 AS point, (p1.f1 <-> c1.f1) AS d
| <(0,0),3> | (10,10) | 11.142135623731 | <(0,0),3> | (10,10) | 11.142135623731
| <(1,3),5> | (-5,-12) | 11.1554944214035 | <(1,3),5> | (-5,-12) | 11.1554944214035
| <(1,2),3> | (-5,-12) | 12.2315462117278 | <(1,2),3> | (-5,-12) | 12.2315462117278
| <(1,3),5> | (5.1,34.5) | 26.7657047773224 | <(1,3),5> | (5.1,34.5) | 26.7657047773223
| <(1,2),3> | (5.1,34.5) | 29.757594539282 | <(1,2),3> | (5.1,34.5) | 29.757594539282
| <(0,0),3> | (5.1,34.5) | 31.8749193547455 | <(0,0),3> | (5.1,34.5) | 31.8749193547455
| <(100,200),10> | (5.1,34.5) | 180.778038568384 | <(100,200),10> | (5.1,34.5) | 180.778038568384
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -85,7 +85,8 @@ WHERE p1.oid != p2.oid AND ...@@ -85,7 +85,8 @@ WHERE p1.oid != p2.oid AND
prorettype | prorettype prorettype | prorettype
------------+------------ ------------+------------
25 | 1043 25 | 1043
(1 row) 1114 | 1184
(2 rows)
SELECT DISTINCT p1.proargtypes[0], p2.proargtypes[0] SELECT DISTINCT p1.proargtypes[0], p2.proargtypes[0]
FROM pg_proc AS p1, pg_proc AS p2 FROM pg_proc AS p1, pg_proc AS p2
...@@ -97,8 +98,9 @@ WHERE p1.oid != p2.oid AND ...@@ -97,8 +98,9 @@ WHERE p1.oid != p2.oid AND
proargtypes | proargtypes proargtypes | proargtypes
-------------+------------- -------------+-------------
25 | 1043 25 | 1043
1114 | 1184
1560 | 1562 1560 | 1562
(2 rows) (3 rows)
SELECT DISTINCT p1.proargtypes[1], p2.proargtypes[1] SELECT DISTINCT p1.proargtypes[1], p2.proargtypes[1]
FROM pg_proc AS p1, pg_proc AS p2 FROM pg_proc AS p1, pg_proc AS p2
...@@ -109,8 +111,9 @@ WHERE p1.oid != p2.oid AND ...@@ -109,8 +111,9 @@ WHERE p1.oid != p2.oid AND
(p1.proargtypes[1] < p2.proargtypes[1]); (p1.proargtypes[1] < p2.proargtypes[1]);
proargtypes | proargtypes proargtypes | proargtypes
-------------+------------- -------------+-------------
1114 | 1184
1560 | 1562 1560 | 1562
(1 row) (2 rows)
SELECT DISTINCT p1.proargtypes[2], p2.proargtypes[2] SELECT DISTINCT p1.proargtypes[2], p2.proargtypes[2]
FROM pg_proc AS p1, pg_proc AS p2 FROM pg_proc AS p1, pg_proc AS p2
...@@ -121,7 +124,8 @@ WHERE p1.oid != p2.oid AND ...@@ -121,7 +124,8 @@ WHERE p1.oid != p2.oid AND
(p1.proargtypes[2] < p2.proargtypes[2]); (p1.proargtypes[2] < p2.proargtypes[2]);
proargtypes | proargtypes proargtypes | proargtypes
-------------+------------- -------------+-------------
(0 rows) 1114 | 1184
(1 row)
SELECT DISTINCT p1.proargtypes[3], p2.proargtypes[3] SELECT DISTINCT p1.proargtypes[3], p2.proargtypes[3]
FROM pg_proc AS p1, pg_proc AS p2 FROM pg_proc AS p1, pg_proc AS p2
...@@ -132,7 +136,8 @@ WHERE p1.oid != p2.oid AND ...@@ -132,7 +136,8 @@ WHERE p1.oid != p2.oid AND
(p1.proargtypes[3] < p2.proargtypes[3]); (p1.proargtypes[3] < p2.proargtypes[3]);
proargtypes | proargtypes proargtypes | proargtypes
-------------+------------- -------------+-------------
(0 rows) 1114 | 1184
(1 row)
SELECT DISTINCT p1.proargtypes[4], p2.proargtypes[4] SELECT DISTINCT p1.proargtypes[4], p2.proargtypes[4]
FROM pg_proc AS p1, pg_proc AS p2 FROM pg_proc AS p1, pg_proc AS p2
...@@ -481,7 +486,7 @@ WHERE p1.aggtransfn = p2.oid AND ...@@ -481,7 +486,7 @@ WHERE p1.aggtransfn = p2.oid AND
oid | aggname | oid | proname oid | aggname | oid | proname
-------+---------+-----+------------- -------+---------+-----+-------------
10021 | max | 768 | int4larger 10021 | max | 768 | int4larger
10036 | min | 769 | int4smaller 10037 | min | 769 | int4smaller
(2 rows) (2 rows)
-- Cross-check finalfn (if present) against its entry in pg_proc. -- Cross-check finalfn (if present) against its entry in pg_proc.
......
...@@ -1029,8 +1029,8 @@ SELECT * FROM shoe_ready WHERE total_avail >= 2; ...@@ -1029,8 +1029,8 @@ SELECT * FROM shoe_ready WHERE total_avail >= 2;
UPDATE shoelace_data SET sl_avail = 6 WHERE sl_name = 'sl7'; UPDATE shoelace_data SET sl_avail = 6 WHERE sl_name = 'sl7';
SELECT * FROM shoelace_log; SELECT * FROM shoelace_log;
sl_name | sl_avail | log_who | log_when sl_name | sl_avail | log_who | log_when
------------+----------+----------+---------- ------------+----------+----------+--------------------------
sl7 | 6 | Al Bundy | epoch sl7 | 6 | Al Bundy | Thu Jan 01 00:00:00 1970
(1 row) (1 row)
CREATE RULE shoelace_ins AS ON INSERT TO shoelace CREATE RULE shoelace_ins AS ON INSERT TO shoelace
...@@ -1099,11 +1099,11 @@ SELECT * FROM shoelace ORDER BY sl_name; ...@@ -1099,11 +1099,11 @@ SELECT * FROM shoelace ORDER BY sl_name;
SELECT * FROM shoelace_log ORDER BY sl_name; SELECT * FROM shoelace_log ORDER BY sl_name;
sl_name | sl_avail | log_who | log_when sl_name | sl_avail | log_who | log_when
------------+----------+----------+---------- ------------+----------+----------+--------------------------
sl3 | 10 | Al Bundy | epoch sl3 | 10 | Al Bundy | Thu Jan 01 00:00:00 1970
sl6 | 20 | Al Bundy | epoch sl6 | 20 | Al Bundy | Thu Jan 01 00:00:00 1970
sl7 | 6 | Al Bundy | epoch sl7 | 6 | Al Bundy | Thu Jan 01 00:00:00 1970
sl8 | 21 | Al Bundy | epoch sl8 | 21 | Al Bundy | Thu Jan 01 00:00:00 1970
(4 rows) (4 rows)
CREATE VIEW shoelace_obsolete AS CREATE VIEW shoelace_obsolete AS
...@@ -1309,7 +1309,7 @@ SELECT viewname, definition FROM pg_views ORDER BY viewname; ...@@ -1309,7 +1309,7 @@ SELECT viewname, definition FROM pg_views ORDER BY viewname;
SELECT tablename, rulename, definition FROM pg_rules SELECT tablename, rulename, definition FROM pg_rules
ORDER BY tablename, rulename; ORDER BY tablename, rulename;
tablename | rulename | definition tablename | rulename | definition
---------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
rtest_emp | rtest_emp_del | CREATE RULE rtest_emp_del AS ON DELETE TO rtest_emp DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (old.ename, "current_user"(), 'fired '::bpchar, '$0.00'::money, old.salary); rtest_emp | rtest_emp_del | CREATE RULE rtest_emp_del AS ON DELETE TO rtest_emp DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (old.ename, "current_user"(), 'fired '::bpchar, '$0.00'::money, old.salary);
rtest_emp | rtest_emp_ins | CREATE RULE rtest_emp_ins AS ON INSERT TO rtest_emp DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(), 'hired '::bpchar, new.salary, '$0.00'::money); rtest_emp | rtest_emp_ins | CREATE RULE rtest_emp_ins AS ON INSERT TO rtest_emp DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(), 'hired '::bpchar, new.salary, '$0.00'::money);
rtest_emp | rtest_emp_upd | CREATE RULE rtest_emp_upd AS ON UPDATE TO rtest_emp WHERE (new.salary <> old.salary) DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(), 'honored '::bpchar, new.salary, old.salary); rtest_emp | rtest_emp_upd | CREATE RULE rtest_emp_upd AS ON UPDATE TO rtest_emp WHERE (new.salary <> old.salary) DO INSERT INTO rtest_emplog (ename, who, "action", newsal, oldsal) VALUES (new.ename, "current_user"(), 'honored '::bpchar, new.salary, old.salary);
...@@ -1335,7 +1335,7 @@ SELECT tablename, rulename, definition FROM pg_rules ...@@ -1335,7 +1335,7 @@ SELECT tablename, rulename, definition FROM pg_rules
shoelace | shoelace_del | CREATE RULE shoelace_del AS ON DELETE TO shoelace DO INSTEAD DELETE FROM shoelace_data WHERE (shoelace_data.sl_name = old.sl_name); shoelace | shoelace_del | CREATE RULE shoelace_del AS ON DELETE TO shoelace DO INSTEAD DELETE FROM shoelace_data WHERE (shoelace_data.sl_name = old.sl_name);
shoelace | shoelace_ins | CREATE RULE shoelace_ins AS ON INSERT TO shoelace DO INSTEAD INSERT INTO shoelace_data (sl_name, sl_avail, sl_color, sl_len, sl_unit) VALUES (new.sl_name, new.sl_avail, new.sl_color, new.sl_len, new.sl_unit); shoelace | shoelace_ins | CREATE RULE shoelace_ins AS ON INSERT TO shoelace DO INSTEAD INSERT INTO shoelace_data (sl_name, sl_avail, sl_color, sl_len, sl_unit) VALUES (new.sl_name, new.sl_avail, new.sl_color, new.sl_len, new.sl_unit);
shoelace | shoelace_upd | CREATE RULE shoelace_upd AS ON UPDATE TO shoelace DO INSTEAD UPDATE shoelace_data SET sl_name = new.sl_name, sl_avail = new.sl_avail, sl_color = new.sl_color, sl_len = new.sl_len, sl_unit = new.sl_unit WHERE (shoelace_data.sl_name = old.sl_name); shoelace | shoelace_upd | CREATE RULE shoelace_upd AS ON UPDATE TO shoelace DO INSTEAD UPDATE shoelace_data SET sl_name = new.sl_name, sl_avail = new.sl_avail, sl_color = new.sl_color, sl_len = new.sl_len, sl_unit = new.sl_unit WHERE (shoelace_data.sl_name = old.sl_name);
shoelace_data | log_shoelace | CREATE RULE log_shoelace AS ON UPDATE TO shoelace_data WHERE (new.sl_avail <> old.sl_avail) DO INSERT INTO shoelace_log (sl_name, sl_avail, log_who, log_when) VALUES (new.sl_name, new.sl_avail, 'Al Bundy'::name, "timestamp"('epoch'::text)); shoelace_data | log_shoelace | CREATE RULE log_shoelace AS ON UPDATE TO shoelace_data WHERE (new.sl_avail <> old.sl_avail) DO INSERT INTO shoelace_log (sl_name, sl_avail, log_who, log_when) VALUES (new.sl_name, new.sl_avail, 'Al Bundy'::name, 'Thu Jan 01 00:00:00 1970'::"timestamp");
shoelace_ok | shoelace_ok_ins | CREATE RULE shoelace_ok_ins AS ON INSERT TO shoelace_ok DO INSTEAD UPDATE shoelace SET sl_avail = (shoelace.sl_avail + new.ok_quant) WHERE (shoelace.sl_name = new.ok_name); shoelace_ok | shoelace_ok_ins | CREATE RULE shoelace_ok_ins AS ON INSERT TO shoelace_ok DO INSTEAD UPDATE shoelace SET sl_avail = (shoelace.sl_avail + new.ok_quant) WHERE (shoelace.sl_name = new.ok_name);
(27 rows) (27 rows)
-- --
-- TIME -- TIME
-- --
CREATE TABLE TIME_TBL (f1 time, f2 time with time zone); CREATE TABLE TIME_TBL (f1 time);
INSERT INTO TIME_TBL VALUES ('00:00', '00:00 PDT'); INSERT INTO TIME_TBL VALUES ('00:00');
INSERT INTO TIME_TBL VALUES ('01:00', '01:00 PDT'); INSERT INTO TIME_TBL VALUES ('01:00');
INSERT INTO TIME_TBL VALUES ('02:03', '02:03 PDT'); INSERT INTO TIME_TBL VALUES ('02:03');
INSERT INTO TIME_TBL VALUES ('11:59', '11:59 PDT'); INSERT INTO TIME_TBL VALUES ('07:07 PST');
INSERT INTO TIME_TBL VALUES ('12:00', '12:00 PDT'); ERROR: Bad time external representation '07:07 PST'
INSERT INTO TIME_TBL VALUES ('12:01', '12:01 PDT'); INSERT INTO TIME_TBL VALUES ('08:08 EDT');
INSERT INTO TIME_TBL VALUES ('23:59', '23:59 PDT'); ERROR: Bad time external representation '08:08 EDT'
INSERT INTO TIME_TBL VALUES ('11:59:59.99 PM', '11:59:59.99 PM PDT'); INSERT INTO TIME_TBL VALUES ('11:59');
SELECT f1 AS "Time", f2 AS "Time TZ" FROM TIME_TBL; INSERT INTO TIME_TBL VALUES ('12:00');
Time | Time TZ INSERT INTO TIME_TBL VALUES ('12:01');
----------+------------- INSERT INTO TIME_TBL VALUES ('23:59');
00:00:00 | 00:00:00-07 INSERT INTO TIME_TBL VALUES ('11:59:59.99 PM');
01:00:00 | 01:00:00-07 SELECT f1 AS "Time" FROM TIME_TBL;
02:03:00 | 02:03:00-07 Time
11:59:00 | 11:59:00-07 ----------
12:00:00 | 12:00:00-07 00:00:00
12:01:00 | 12:01:00-07 01:00:00
23:59:00 | 23:59:00-07 02:03:00
23:59:59 | 23:59:59-07 11:59:00
12:00:00
12:01:00
23:59:00
23:59:59
(8 rows) (8 rows)
SELECT f1 AS "Three" FROM TIME_TBL WHERE f1 < '05:06:07'; SELECT f1 AS "Three" FROM TIME_TBL WHERE f1 < '05:06:07';
...@@ -70,6 +74,3 @@ SELECT f1 AS "Eight" FROM TIME_TBL WHERE f1 >= '00:00'; ...@@ -70,6 +74,3 @@ SELECT f1 AS "Eight" FROM TIME_TBL WHERE f1 >= '00:00';
SELECT f1 + time '00:01' AS "Illegal" FROM TIME_TBL; SELECT f1 + time '00:01' AS "Illegal" FROM TIME_TBL;
ERROR: Unable to identify an operator '+' for types 'time' and 'time' ERROR: Unable to identify an operator '+' for types 'time' and 'time'
You will have to retype this query using an explicit cast You will have to retype this query using an explicit cast
SELECT f2 + time with time zone '00:01' AS "Illegal" FROM TIME_TBL;
ERROR: Unable to identify an operator '+' for types 'time with time zone' and 'time with time zone'
You will have to retype this query using an explicit cast
-- --
-- DATETIME -- TIMESTAMP
-- --
-- needed so tests pass even in Australia
SET australian_timezones = 'off';
CREATE TABLE TIMESTAMP_TBL ( d1 timestamp without time zone);
-- Shorthand values -- Shorthand values
-- Not directly usable for regression testing since these are not constants. -- Not directly usable for regression testing since these are not constants.
-- So, just try to test parser and hope for the best - thomas 97/04/26 -- So, just try to test parser and hope for the best - thomas 97/04/26
-- needed so tests pass INSERT INTO TIMESTAMP_TBL VALUES ('now');
SET australian_timezones = 'off';
SELECT (timestamp 'today' = (timestamp 'yesterday' + interval '1 day')) as "True";
True
------
t
(1 row)
SELECT (timestamp 'today' = (timestamp 'tomorrow' - interval '1 day')) as "True";
True
------
t
(1 row)
SELECT (timestamp 'tomorrow' = (timestamp 'yesterday' + interval '2 days')) as "True";
True
------
t
(1 row)
SELECT (timestamp 'current' = 'now') as "True";
True
------
t
(1 row)
SELECT (timestamp 'now' - 'current') AS "ZeroSecs";
ZeroSecs
----------
@ 0
(1 row)
SET DateStyle = 'Postgres,NonEuropean';
SELECT timestamp(date '1994-01-01', time '11:00') AS "Jan_01_1994_11am";
Jan_01_1994_11am
------------------------------
Sat Jan 01 11:00:00 1994 PST
(1 row)
SELECT timestamp(date '1994-01-01', time '10:00') AS "Jan_01_1994_10am";
Jan_01_1994_10am
------------------------------
Sat Jan 01 10:00:00 1994 PST
(1 row)
SELECT timestamp(date '1994-01-01', time with time zone '11:00-5') AS "Jan_01_1994_8am";
Jan_01_1994_8am
------------------------------
Sat Jan 01 08:00:00 1994 PST
(1 row)
CREATE TABLE TIMESTAMP_TBL ( d1 timestamp);
INSERT INTO TIMESTAMP_TBL VALUES ('current'); INSERT INTO TIMESTAMP_TBL VALUES ('current');
INSERT INTO TIMESTAMP_TBL VALUES ('today'); INSERT INTO TIMESTAMP_TBL VALUES ('today');
INSERT INTO TIMESTAMP_TBL VALUES ('yesterday'); INSERT INTO TIMESTAMP_TBL VALUES ('yesterday');
INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow'); INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow');
INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow EST'); INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow EST');
INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow zulu'); INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow zulu');
SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today'; SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'today';
one
-----
1
(1 row)
SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'tomorrow';
one
-----
1
(1 row)
SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'yesterday';
one one
----- -----
1 1
(1 row) (1 row)
SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today' + interval '1 day'; SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'tomorrow';
one one
----- -----
1 3
(1 row) (1 row)
SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today' - interval '1 day'; SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'yesterday';
one one
----- -----
1 1
(1 row) (1 row)
SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'now'; SELECT count(*) AS None FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'now';
one none
----- ------
1 0
(1 row) (1 row)
DELETE FROM TIMESTAMP_TBL; DELETE FROM TIMESTAMP_TBL;
-- verify uniform transaction time within transaction block -- verify uniform transaction time within transaction block
INSERT INTO TIMESTAMP_TBL VALUES ('current');
BEGIN; BEGIN;
INSERT INTO TIMESTAMP_TBL VALUES ('now'); INSERT INTO TIMESTAMP_TBL VALUES ('now');
SELECT count(*) AS two FROM TIMESTAMP_TBL WHERE d1 = timestamp 'now'; INSERT INTO TIMESTAMP_TBL VALUES ('now');
SELECT count(*) AS two FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'now';
two two
----- -----
2 2
...@@ -112,14 +52,18 @@ SELECT count(*) AS two FROM TIMESTAMP_TBL WHERE d1 = timestamp 'now'; ...@@ -112,14 +52,18 @@ SELECT count(*) AS two FROM TIMESTAMP_TBL WHERE d1 = timestamp 'now';
END; END;
DELETE FROM TIMESTAMP_TBL; DELETE FROM TIMESTAMP_TBL;
-- Special values -- Special values
INSERT INTO TIMESTAMP_TBL VALUES ('invalid');
INSERT INTO TIMESTAMP_TBL VALUES ('-infinity'); INSERT INTO TIMESTAMP_TBL VALUES ('-infinity');
INSERT INTO TIMESTAMP_TBL VALUES ('infinity'); INSERT INTO TIMESTAMP_TBL VALUES ('infinity');
INSERT INTO TIMESTAMP_TBL VALUES ('epoch'); INSERT INTO TIMESTAMP_TBL VALUES ('epoch');
-- Obsolete special values
INSERT INTO TIMESTAMP_TBL VALUES ('invalid');
ERROR: Timestamp 'invalid' no longer supported
-- Postgres v6.0 standard output format -- Postgres v6.0 standard output format
INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST'); INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST');
INSERT INTO TIMESTAMP_TBL VALUES ('Invalid Abstime'); INSERT INTO TIMESTAMP_TBL VALUES ('Invalid Abstime');
ERROR: Bad timestamp external representation 'Invalid Abstime'
INSERT INTO TIMESTAMP_TBL VALUES ('Undefined Abstime'); INSERT INTO TIMESTAMP_TBL VALUES ('Undefined Abstime');
ERROR: Bad timestamp external representation 'Undefined Abstime'
-- Variations on Postgres v6.1 standard output format -- Variations on Postgres v6.1 standard output format
INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.000001 1997 PST'); INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.000001 1997 PST');
INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.999999 1997 PST'); INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.999999 1997 PST');
...@@ -134,6 +78,7 @@ INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01-0800'); ...@@ -134,6 +78,7 @@ INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01-0800');
INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01 -08:00'); INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01 -08:00');
INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 -0800'); INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 -0800');
INSERT INTO TIMESTAMP_TBL VALUES ('1997-06-10 17:32:01 -07:00'); INSERT INTO TIMESTAMP_TBL VALUES ('1997-06-10 17:32:01 -07:00');
INSERT INTO TIMESTAMP_TBL VALUES ('2001-09-22T18:19:20');
-- POSIX format -- POSIX format
INSERT INTO TIMESTAMP_TBL VALUES ('2000-03-15 08:14:01 GMT+8'); INSERT INTO TIMESTAMP_TBL VALUES ('2000-03-15 08:14:01 GMT+8');
INSERT INTO TIMESTAMP_TBL VALUES ('2000-03-15 13:14:02 GMT-1'); INSERT INTO TIMESTAMP_TBL VALUES ('2000-03-15 13:14:02 GMT-1');
...@@ -191,52 +136,50 @@ INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 -0097'); ...@@ -191,52 +136,50 @@ INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 -0097');
ERROR: Bad timestamp external representation 'Feb 16 17:32:01 -0097' ERROR: Bad timestamp external representation 'Feb 16 17:32:01 -0097'
INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC'); INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC');
ERROR: Timestamp out of range 'Feb 16 17:32:01 5097 BC' ERROR: Timestamp out of range 'Feb 16 17:32:01 5097 BC'
SELECT '' AS "66", d1 FROM TIMESTAMP_TBL; SELECT '' AS "64", d1 FROM TIMESTAMP_TBL;
66 | d1 64 | d1
----+--------------------------------- ----+-----------------------------
| invalid
| -infinity | -infinity
| infinity | infinity
| epoch | Thu Jan 01 00:00:00 1970
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| invalid | Mon Feb 10 17:32:01.00 1997
| invalid | Mon Feb 10 17:32:02.00 1997
| Mon Feb 10 17:32:01.00 1997 PST | Mon Feb 10 17:32:01.40 1997
| Mon Feb 10 17:32:02.00 1997 PST | Mon Feb 10 17:32:01.50 1997
| Mon Feb 10 17:32:01.40 1997 PST | Mon Feb 10 17:32:01.60 1997
| Mon Feb 10 17:32:01.50 1997 PST | Thu Jan 02 00:00:00 1997
| Mon Feb 10 17:32:01.60 1997 PST | Thu Jan 02 03:04:05 1997
| Thu Jan 02 00:00:00 1997 PST | Mon Feb 10 17:32:01 1997
| Thu Jan 02 03:04:05 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Tue Jun 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Sat Sep 22 18:19:20 2001
| Tue Jun 10 17:32:01 1997 PDT | Wed Mar 15 08:14:01 2000
| Wed Mar 15 08:14:01 2000 PST | Wed Mar 15 13:14:02 2000
| Wed Mar 15 04:14:02 2000 PST | Wed Mar 15 12:14:03 2000
| Wed Mar 15 02:14:03 2000 PST | Wed Mar 15 03:14:04 2000
| Wed Mar 15 03:14:04 2000 PST | Wed Mar 15 02:14:05 2000
| Wed Mar 15 01:14:05 2000 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:00 1997
| Mon Feb 10 17:32:00 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 09:32:01 1997 PST | Tue Jun 10 18:32:01 1997
| Tue Jun 10 18:32:01 1997 PDT | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Tue Feb 11 17:32:01 1997
| Tue Feb 11 17:32:01 1997 PST | Wed Feb 12 17:32:01 1997
| Wed Feb 12 17:32:01 1997 PST | Thu Feb 13 17:32:01 1997
| Thu Feb 13 17:32:01 1997 PST | Fri Feb 14 17:32:01 1997
| Fri Feb 14 17:32:01 1997 PST | Sat Feb 15 17:32:01 1997
| Sat Feb 15 17:32:01 1997 PST | Sun Feb 16 17:32:01 1997
| Sun Feb 16 17:32:01 1997 PST
| Tue Feb 16 17:32 0097 BC | Tue Feb 16 17:32 0097 BC
| Sat Feb 16 17:32:01 0097 | Sat Feb 16 17:32:01 0097
| Thu Feb 16 17:32:01 0597 | Thu Feb 16 17:32:01 0597
...@@ -244,87 +187,85 @@ SELECT '' AS "66", d1 FROM TIMESTAMP_TBL; ...@@ -244,87 +187,85 @@ SELECT '' AS "66", d1 FROM TIMESTAMP_TBL;
| Sat Feb 16 17:32:01 1697 | Sat Feb 16 17:32:01 1697
| Thu Feb 16 17:32:01 1797 | Thu Feb 16 17:32:01 1797
| Tue Feb 16 17:32:01 1897 | Tue Feb 16 17:32:01 1897
| Sun Feb 16 17:32:01 1997 PST | Sun Feb 16 17:32:01 1997
| Sat Feb 16 17:32:01 2097 | Sat Feb 16 17:32:01 2097
| Wed Feb 28 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996
| Thu Feb 29 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996
| Fri Mar 01 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996
| Mon Dec 30 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996
| Tue Dec 31 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996
| Wed Jan 01 17:32:01 1997 PST | Wed Jan 01 17:32:01 1997
| Fri Feb 28 17:32:01 1997 PST | Fri Feb 28 17:32:01 1997
| Sat Mar 01 17:32:01 1997 PST | Sat Mar 01 17:32:01 1997
| Tue Dec 30 17:32:01 1997 PST | Tue Dec 30 17:32:01 1997
| Wed Dec 31 17:32:01 1997 PST | Wed Dec 31 17:32:01 1997
| Fri Dec 31 17:32:01 1999 PST | Fri Dec 31 17:32:01 1999
| Sat Jan 01 17:32:01 2000 PST | Sat Jan 01 17:32:01 2000
| Sun Dec 31 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000
| Mon Jan 01 17:32:01 2001 PST | Mon Jan 01 17:32:01 2001
(66 rows) (64 rows)
-- Demonstrate functions and operators -- Demonstrate functions and operators
SELECT '' AS "47", d1 FROM TIMESTAMP_TBL SELECT '' AS "48", d1 FROM TIMESTAMP_TBL
WHERE d1 > timestamp '1997-01-02' and d1 != timestamp 'current'; WHERE d1 > timestamp without time zone '1997-01-02';
47 | d1 48 | d1
----+--------------------------------- ----+-----------------------------
| invalid
| infinity | infinity
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| invalid | Mon Feb 10 17:32:01.00 1997
| invalid | Mon Feb 10 17:32:02.00 1997
| Mon Feb 10 17:32:01.00 1997 PST | Mon Feb 10 17:32:01.40 1997
| Mon Feb 10 17:32:02.00 1997 PST | Mon Feb 10 17:32:01.50 1997
| Mon Feb 10 17:32:01.40 1997 PST | Mon Feb 10 17:32:01.60 1997
| Mon Feb 10 17:32:01.50 1997 PST | Thu Jan 02 03:04:05 1997
| Mon Feb 10 17:32:01.60 1997 PST | Mon Feb 10 17:32:01 1997
| Thu Jan 02 03:04:05 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Tue Jun 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Sat Sep 22 18:19:20 2001
| Tue Jun 10 17:32:01 1997 PDT | Wed Mar 15 08:14:01 2000
| Wed Mar 15 08:14:01 2000 PST | Wed Mar 15 13:14:02 2000
| Wed Mar 15 04:14:02 2000 PST | Wed Mar 15 12:14:03 2000
| Wed Mar 15 02:14:03 2000 PST | Wed Mar 15 03:14:04 2000
| Wed Mar 15 03:14:04 2000 PST | Wed Mar 15 02:14:05 2000
| Wed Mar 15 01:14:05 2000 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:00 1997
| Mon Feb 10 17:32:00 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 09:32:01 1997 PST | Tue Jun 10 18:32:01 1997
| Tue Jun 10 18:32:01 1997 PDT | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Tue Feb 11 17:32:01 1997
| Tue Feb 11 17:32:01 1997 PST | Wed Feb 12 17:32:01 1997
| Wed Feb 12 17:32:01 1997 PST | Thu Feb 13 17:32:01 1997
| Thu Feb 13 17:32:01 1997 PST | Fri Feb 14 17:32:01 1997
| Fri Feb 14 17:32:01 1997 PST | Sat Feb 15 17:32:01 1997
| Sat Feb 15 17:32:01 1997 PST | Sun Feb 16 17:32:01 1997
| Sun Feb 16 17:32:01 1997 PST | Sun Feb 16 17:32:01 1997
| Sun Feb 16 17:32:01 1997 PST
| Sat Feb 16 17:32:01 2097 | Sat Feb 16 17:32:01 2097
| Fri Feb 28 17:32:01 1997 PST | Fri Feb 28 17:32:01 1997
| Sat Mar 01 17:32:01 1997 PST | Sat Mar 01 17:32:01 1997
| Tue Dec 30 17:32:01 1997 PST | Tue Dec 30 17:32:01 1997
| Wed Dec 31 17:32:01 1997 PST | Wed Dec 31 17:32:01 1997
| Fri Dec 31 17:32:01 1999 PST | Fri Dec 31 17:32:01 1999
| Sat Jan 01 17:32:01 2000 PST | Sat Jan 01 17:32:01 2000
| Sun Dec 31 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000
| Mon Jan 01 17:32:01 2001 PST | Mon Jan 01 17:32:01 2001
(50 rows) (48 rows)
SELECT '' AS "15", d1 FROM TIMESTAMP_TBL SELECT '' AS "15", d1 FROM TIMESTAMP_TBL
WHERE d1 < timestamp '1997-01-02' and d1 != timestamp 'current'; WHERE d1 < timestamp without time zone '1997-01-02';
15 | d1 15 | d1
----+------------------------------ ----+--------------------------
| -infinity | -infinity
| epoch | Thu Jan 01 00:00:00 1970
| Tue Feb 16 17:32 0097 BC | Tue Feb 16 17:32 0097 BC
| Sat Feb 16 17:32:01 0097 | Sat Feb 16 17:32:01 0097
| Thu Feb 16 17:32:01 0597 | Thu Feb 16 17:32:01 0597
...@@ -332,67 +273,65 @@ SELECT '' AS "15", d1 FROM TIMESTAMP_TBL ...@@ -332,67 +273,65 @@ SELECT '' AS "15", d1 FROM TIMESTAMP_TBL
| Sat Feb 16 17:32:01 1697 | Sat Feb 16 17:32:01 1697
| Thu Feb 16 17:32:01 1797 | Thu Feb 16 17:32:01 1797
| Tue Feb 16 17:32:01 1897 | Tue Feb 16 17:32:01 1897
| Wed Feb 28 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996
| Thu Feb 29 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996
| Fri Mar 01 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996
| Mon Dec 30 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996
| Tue Dec 31 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996
| Wed Jan 01 17:32:01 1997 PST | Wed Jan 01 17:32:01 1997
(15 rows) (15 rows)
SELECT '' AS one, d1 FROM TIMESTAMP_TBL SELECT '' AS one, d1 FROM TIMESTAMP_TBL
WHERE d1 = timestamp '1997-01-02' and d1 != timestamp 'current'; WHERE d1 = timestamp without time zone '1997-01-02';
one | d1 one | d1
-----+------------------------------ -----+--------------------------
| Thu Jan 02 00:00:00 1997 PST | Thu Jan 02 00:00:00 1997
(1 row) (1 row)
SELECT '' AS "62", d1 FROM TIMESTAMP_TBL SELECT '' AS "63", d1 FROM TIMESTAMP_TBL
WHERE d1 != timestamp '1997-01-02' and d1 != timestamp 'current'; WHERE d1 != timestamp without time zone '1997-01-02';
62 | d1 63 | d1
----+--------------------------------- ----+-----------------------------
| invalid
| -infinity | -infinity
| infinity | infinity
| epoch | Thu Jan 01 00:00:00 1970
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| invalid | Mon Feb 10 17:32:01.00 1997
| invalid | Mon Feb 10 17:32:02.00 1997
| Mon Feb 10 17:32:01.00 1997 PST | Mon Feb 10 17:32:01.40 1997
| Mon Feb 10 17:32:02.00 1997 PST | Mon Feb 10 17:32:01.50 1997
| Mon Feb 10 17:32:01.40 1997 PST | Mon Feb 10 17:32:01.60 1997
| Mon Feb 10 17:32:01.50 1997 PST | Thu Jan 02 03:04:05 1997
| Mon Feb 10 17:32:01.60 1997 PST | Mon Feb 10 17:32:01 1997
| Thu Jan 02 03:04:05 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Tue Jun 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Sat Sep 22 18:19:20 2001
| Tue Jun 10 17:32:01 1997 PDT | Wed Mar 15 08:14:01 2000
| Wed Mar 15 08:14:01 2000 PST | Wed Mar 15 13:14:02 2000
| Wed Mar 15 04:14:02 2000 PST | Wed Mar 15 12:14:03 2000
| Wed Mar 15 02:14:03 2000 PST | Wed Mar 15 03:14:04 2000
| Wed Mar 15 03:14:04 2000 PST | Wed Mar 15 02:14:05 2000
| Wed Mar 15 01:14:05 2000 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:00 1997
| Mon Feb 10 17:32:00 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 09:32:01 1997 PST | Tue Jun 10 18:32:01 1997
| Tue Jun 10 18:32:01 1997 PDT | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Tue Feb 11 17:32:01 1997
| Tue Feb 11 17:32:01 1997 PST | Wed Feb 12 17:32:01 1997
| Wed Feb 12 17:32:01 1997 PST | Thu Feb 13 17:32:01 1997
| Thu Feb 13 17:32:01 1997 PST | Fri Feb 14 17:32:01 1997
| Fri Feb 14 17:32:01 1997 PST | Sat Feb 15 17:32:01 1997
| Sat Feb 15 17:32:01 1997 PST | Sun Feb 16 17:32:01 1997
| Sun Feb 16 17:32:01 1997 PST
| Tue Feb 16 17:32 0097 BC | Tue Feb 16 17:32 0097 BC
| Sat Feb 16 17:32:01 0097 | Sat Feb 16 17:32:01 0097
| Thu Feb 16 17:32:01 0597 | Thu Feb 16 17:32:01 0597
...@@ -400,31 +339,31 @@ SELECT '' AS "62", d1 FROM TIMESTAMP_TBL ...@@ -400,31 +339,31 @@ SELECT '' AS "62", d1 FROM TIMESTAMP_TBL
| Sat Feb 16 17:32:01 1697 | Sat Feb 16 17:32:01 1697
| Thu Feb 16 17:32:01 1797 | Thu Feb 16 17:32:01 1797
| Tue Feb 16 17:32:01 1897 | Tue Feb 16 17:32:01 1897
| Sun Feb 16 17:32:01 1997 PST | Sun Feb 16 17:32:01 1997
| Sat Feb 16 17:32:01 2097 | Sat Feb 16 17:32:01 2097
| Wed Feb 28 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996
| Thu Feb 29 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996
| Fri Mar 01 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996
| Mon Dec 30 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996
| Tue Dec 31 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996
| Wed Jan 01 17:32:01 1997 PST | Wed Jan 01 17:32:01 1997
| Fri Feb 28 17:32:01 1997 PST | Fri Feb 28 17:32:01 1997
| Sat Mar 01 17:32:01 1997 PST | Sat Mar 01 17:32:01 1997
| Tue Dec 30 17:32:01 1997 PST | Tue Dec 30 17:32:01 1997
| Wed Dec 31 17:32:01 1997 PST | Wed Dec 31 17:32:01 1997
| Fri Dec 31 17:32:01 1999 PST | Fri Dec 31 17:32:01 1999
| Sat Jan 01 17:32:01 2000 PST | Sat Jan 01 17:32:01 2000
| Sun Dec 31 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000
| Mon Jan 01 17:32:01 2001 PST | Mon Jan 01 17:32:01 2001
(65 rows) (63 rows)
SELECT '' AS "16", d1 FROM TIMESTAMP_TBL SELECT '' AS "16", d1 FROM TIMESTAMP_TBL
WHERE d1 <= timestamp '1997-01-02' and d1 != timestamp 'current'; WHERE d1 <= timestamp without time zone '1997-01-02';
16 | d1 16 | d1
----+------------------------------ ----+--------------------------
| -infinity | -infinity
| epoch | Thu Jan 01 00:00:00 1970
| Thu Jan 02 00:00:00 1997 PST | Thu Jan 02 00:00:00 1997
| Tue Feb 16 17:32 0097 BC | Tue Feb 16 17:32 0097 BC
| Sat Feb 16 17:32:01 0097 | Sat Feb 16 17:32:01 0097
| Thu Feb 16 17:32:01 0597 | Thu Feb 16 17:32:01 0597
...@@ -432,218 +371,74 @@ SELECT '' AS "16", d1 FROM TIMESTAMP_TBL ...@@ -432,218 +371,74 @@ SELECT '' AS "16", d1 FROM TIMESTAMP_TBL
| Sat Feb 16 17:32:01 1697 | Sat Feb 16 17:32:01 1697
| Thu Feb 16 17:32:01 1797 | Thu Feb 16 17:32:01 1797
| Tue Feb 16 17:32:01 1897 | Tue Feb 16 17:32:01 1897
| Wed Feb 28 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996
| Thu Feb 29 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996
| Fri Mar 01 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996
| Mon Dec 30 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996
| Tue Dec 31 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996
| Wed Jan 01 17:32:01 1997 PST | Wed Jan 01 17:32:01 1997
(16 rows) (16 rows)
SELECT '' AS "48", d1 FROM TIMESTAMP_TBL SELECT '' AS "49", d1 FROM TIMESTAMP_TBL
WHERE d1 >= timestamp '1997-01-02' and d1 != timestamp 'current'; WHERE d1 >= timestamp without time zone '1997-01-02';
48 | d1 49 | d1
----+--------------------------------- ----+-----------------------------
| invalid
| infinity | infinity
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| invalid | Mon Feb 10 17:32:01.00 1997
| invalid | Mon Feb 10 17:32:02.00 1997
| Mon Feb 10 17:32:01.00 1997 PST | Mon Feb 10 17:32:01.40 1997
| Mon Feb 10 17:32:02.00 1997 PST | Mon Feb 10 17:32:01.50 1997
| Mon Feb 10 17:32:01.40 1997 PST | Mon Feb 10 17:32:01.60 1997
| Mon Feb 10 17:32:01.50 1997 PST | Thu Jan 02 00:00:00 1997
| Mon Feb 10 17:32:01.60 1997 PST | Thu Jan 02 03:04:05 1997
| Thu Jan 02 00:00:00 1997 PST | Mon Feb 10 17:32:01 1997
| Thu Jan 02 03:04:05 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Tue Jun 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Sat Sep 22 18:19:20 2001
| Tue Jun 10 17:32:01 1997 PDT | Wed Mar 15 08:14:01 2000
| Wed Mar 15 08:14:01 2000 PST | Wed Mar 15 13:14:02 2000
| Wed Mar 15 04:14:02 2000 PST | Wed Mar 15 12:14:03 2000
| Wed Mar 15 02:14:03 2000 PST | Wed Mar 15 03:14:04 2000
| Wed Mar 15 03:14:04 2000 PST | Wed Mar 15 02:14:05 2000
| Wed Mar 15 01:14:05 2000 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:00 1997
| Mon Feb 10 17:32:00 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 17:32:01 1997
| Mon Feb 10 09:32:01 1997 PST | Tue Jun 10 18:32:01 1997
| Tue Jun 10 18:32:01 1997 PDT | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 PST | Tue Feb 11 17:32:01 1997
| Tue Feb 11 17:32:01 1997 PST | Wed Feb 12 17:32:01 1997
| Wed Feb 12 17:32:01 1997 PST | Thu Feb 13 17:32:01 1997
| Thu Feb 13 17:32:01 1997 PST | Fri Feb 14 17:32:01 1997
| Fri Feb 14 17:32:01 1997 PST | Sat Feb 15 17:32:01 1997
| Sat Feb 15 17:32:01 1997 PST | Sun Feb 16 17:32:01 1997
| Sun Feb 16 17:32:01 1997 PST | Sun Feb 16 17:32:01 1997
| Sun Feb 16 17:32:01 1997 PST
| Sat Feb 16 17:32:01 2097 | Sat Feb 16 17:32:01 2097
| Fri Feb 28 17:32:01 1997 PST | Fri Feb 28 17:32:01 1997
| Sat Mar 01 17:32:01 1997 PST | Sat Mar 01 17:32:01 1997
| Tue Dec 30 17:32:01 1997 PST | Tue Dec 30 17:32:01 1997
| Wed Dec 31 17:32:01 1997 PST | Wed Dec 31 17:32:01 1997
| Fri Dec 31 17:32:01 1999 PST | Fri Dec 31 17:32:01 1999
| Sat Jan 01 17:32:01 2000 PST | Sat Jan 01 17:32:01 2000
| Sun Dec 31 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000
| Mon Jan 01 17:32:01 2001 PST | Mon Jan 01 17:32:01 2001
(51 rows) (49 rows)
SELECT '' AS "66", d1 + interval '1 year' AS one_year FROM TIMESTAMP_TBL;
66 | one_year
----+---------------------------------
| invalid
| -infinity
| infinity
| Thu Dec 31 16:00:00 1970 PST
| Tue Feb 10 17:32:01 1998 PST
| invalid
| invalid
| Tue Feb 10 17:32:01.00 1998 PST
| Tue Feb 10 17:32:02.00 1998 PST
| Tue Feb 10 17:32:01.40 1998 PST
| Tue Feb 10 17:32:01.50 1998 PST
| Tue Feb 10 17:32:01.60 1998 PST
| Fri Jan 02 00:00:00 1998 PST
| Fri Jan 02 03:04:05 1998 PST
| Tue Feb 10 17:32:01 1998 PST
| Tue Feb 10 17:32:01 1998 PST
| Tue Feb 10 17:32:01 1998 PST
| Tue Feb 10 17:32:01 1998 PST
| Wed Jun 10 17:32:01 1998 PDT
| Thu Mar 15 08:14:01 2001 PST
| Thu Mar 15 04:14:02 2001 PST
| Thu Mar 15 02:14:03 2001 PST
| Thu Mar 15 03:14:04 2001 PST
| Thu Mar 15 01:14:05 2001 PST
| Tue Feb 10 17:32:01 1998 PST
| Tue Feb 10 17:32:01 1998 PST
| Tue Feb 10 17:32:00 1998 PST
| Tue Feb 10 17:32:01 1998 PST
| Tue Feb 10 17:32:01 1998 PST
| Tue Feb 10 17:32:01 1998 PST
| Tue Feb 10 17:32:01 1998 PST
| Tue Feb 10 17:32:01 1998 PST
| Tue Feb 10 09:32:01 1998 PST
| Tue Feb 10 09:32:01 1998 PST
| Tue Feb 10 09:32:01 1998 PST
| Wed Jun 10 18:32:01 1998 PDT
| Tue Feb 10 17:32:01 1998 PST
| Wed Feb 11 17:32:01 1998 PST
| Thu Feb 12 17:32:01 1998 PST
| Fri Feb 13 17:32:01 1998 PST
| Sat Feb 14 17:32:01 1998 PST
| Sun Feb 15 17:32:01 1998 PST
| Mon Feb 16 17:32:01 1998 PST
| Thu Feb 16 17:32 0096 BC
| Sun Feb 16 17:32:01 0098
| Fri Feb 16 17:32:01 0598
| Wed Feb 16 17:32:01 1098
| Sun Feb 16 17:32:01 1698
| Fri Feb 16 17:32:01 1798
| Wed Feb 16 17:32:01 1898
| Mon Feb 16 17:32:01 1998 PST
| Sun Feb 16 17:32:01 2098
| Fri Feb 28 17:32:01 1997 PST
| Fri Feb 28 17:32:01 1997 PST
| Sat Mar 01 17:32:01 1997 PST
| Tue Dec 30 17:32:01 1997 PST
| Wed Dec 31 17:32:01 1997 PST
| Thu Jan 01 17:32:01 1998 PST
| Sat Feb 28 17:32:01 1998 PST
| Sun Mar 01 17:32:01 1998 PST
| Wed Dec 30 17:32:01 1998 PST
| Thu Dec 31 17:32:01 1998 PST
| Sun Dec 31 17:32:01 2000 PST
| Mon Jan 01 17:32:01 2001 PST
| Mon Dec 31 17:32:01 2001 PST
| Tue Jan 01 17:32:01 2002 PST
(66 rows)
SELECT '' AS "66", d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL; SELECT '' AS "54", d1 - timestamp without time zone '1997-01-02' AS diff
66 | one_year
----+---------------------------------
| invalid
| -infinity
| infinity
| Tue Dec 31 16:00:00 1968 PST
| Sat Feb 10 17:32:01 1996 PST
| invalid
| invalid
| Sat Feb 10 17:32:01.00 1996 PST
| Sat Feb 10 17:32:02.00 1996 PST
| Sat Feb 10 17:32:01.40 1996 PST
| Sat Feb 10 17:32:01.50 1996 PST
| Sat Feb 10 17:32:01.60 1996 PST
| Tue Jan 02 00:00:00 1996 PST
| Tue Jan 02 03:04:05 1996 PST
| Sat Feb 10 17:32:01 1996 PST
| Sat Feb 10 17:32:01 1996 PST
| Sat Feb 10 17:32:01 1996 PST
| Sat Feb 10 17:32:01 1996 PST
| Mon Jun 10 17:32:01 1996 PDT
| Mon Mar 15 08:14:01 1999 PST
| Mon Mar 15 04:14:02 1999 PST
| Mon Mar 15 02:14:03 1999 PST
| Mon Mar 15 03:14:04 1999 PST
| Mon Mar 15 01:14:05 1999 PST
| Sat Feb 10 17:32:01 1996 PST
| Sat Feb 10 17:32:01 1996 PST
| Sat Feb 10 17:32:00 1996 PST
| Sat Feb 10 17:32:01 1996 PST
| Sat Feb 10 17:32:01 1996 PST
| Sat Feb 10 17:32:01 1996 PST
| Sat Feb 10 17:32:01 1996 PST
| Sat Feb 10 17:32:01 1996 PST
| Sat Feb 10 09:32:01 1996 PST
| Sat Feb 10 09:32:01 1996 PST
| Sat Feb 10 09:32:01 1996 PST
| Mon Jun 10 18:32:01 1996 PDT
| Sat Feb 10 17:32:01 1996 PST
| Sun Feb 11 17:32:01 1996 PST
| Mon Feb 12 17:32:01 1996 PST
| Tue Feb 13 17:32:01 1996 PST
| Wed Feb 14 17:32:01 1996 PST
| Thu Feb 15 17:32:01 1996 PST
| Fri Feb 16 17:32:01 1996 PST
| Mon Feb 16 17:32 0098 BC
| Thu Feb 16 17:32:01 0096
| Tue Feb 16 17:32:01 0596
| Sun Feb 16 17:32:01 1096
| Thu Feb 16 17:32:01 1696
| Tue Feb 16 17:32:01 1796
| Sun Feb 16 17:32:01 1896
| Fri Feb 16 17:32:01 1996 PST
| Thu Feb 16 17:32:01 2096
| Tue Feb 28 17:32:01 1995 PST
| Tue Feb 28 17:32:01 1995 PST
| Wed Mar 01 17:32:01 1995 PST
| Sat Dec 30 17:32:01 1995 PST
| Sun Dec 31 17:32:01 1995 PST
| Mon Jan 01 17:32:01 1996 PST
| Wed Feb 28 17:32:01 1996 PST
| Fri Mar 01 17:32:01 1996 PST
| Mon Dec 30 17:32:01 1996 PST
| Tue Dec 31 17:32:01 1996 PST
| Thu Dec 31 17:32:01 1998 PST
| Fri Jan 01 17:32:01 1999 PST
| Fri Dec 31 17:32:01 1999 PST
| Sat Jan 01 17:32:01 2000 PST
(66 rows)
SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff
FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
53 | diff 54 | diff
----+---------------------------------------- ----+----------------------------------------
| @ 9863 days 8 hours ago | @ 9863 days ago
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1.00 secs | @ 39 days 17 hours 32 mins 1.00 secs
| @ 39 days 17 hours 32 mins 2.00 secs | @ 39 days 17 hours 32 mins 2.00 secs
...@@ -656,12 +451,13 @@ SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff ...@@ -656,12 +451,13 @@ SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 159 days 16 hours 32 mins 1 sec | @ 159 days 17 hours 32 mins 1 sec
| @ 1724 days 18 hours 19 mins 20 secs
| @ 1168 days 8 hours 14 mins 1 sec | @ 1168 days 8 hours 14 mins 1 sec
| @ 1168 days 4 hours 14 mins 2 secs | @ 1168 days 13 hours 14 mins 2 secs
| @ 1168 days 2 hours 14 mins 3 secs | @ 1168 days 12 hours 14 mins 3 secs
| @ 1168 days 3 hours 14 mins 4 secs | @ 1168 days 3 hours 14 mins 4 secs
| @ 1168 days 1 hour 14 mins 5 secs | @ 1168 days 2 hours 14 mins 5 secs
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins | @ 39 days 17 hours 32 mins
...@@ -670,10 +466,10 @@ SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff ...@@ -670,10 +466,10 @@ SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 9 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 9 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 9 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 159 days 17 hours 32 mins 1 sec | @ 159 days 18 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 40 days 17 hours 32 mins 1 sec | @ 40 days 17 hours 32 mins 1 sec
| @ 41 days 17 hours 32 mins 1 sec | @ 41 days 17 hours 32 mins 1 sec
...@@ -696,15 +492,16 @@ SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff ...@@ -696,15 +492,16 @@ SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff
| @ 1094 days 17 hours 32 mins 1 sec | @ 1094 days 17 hours 32 mins 1 sec
| @ 1459 days 17 hours 32 mins 1 sec | @ 1459 days 17 hours 32 mins 1 sec
| @ 1460 days 17 hours 32 mins 1 sec | @ 1460 days 17 hours 32 mins 1 sec
(53 rows) (54 rows)
-- Test casting within a BETWEEN qualifier -- Test casting within a BETWEEN qualifier
SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff SELECT '' AS "54", d1 - timestamp without time zone '1997-01-02' AS diff
FROM TIMESTAMP_TBL FROM TIMESTAMP_TBL
WHERE d1 BETWEEN timestamp '1902-01-01' AND timestamp '2038-01-01'; WHERE d1 BETWEEN timestamp without time zone '1902-01-01'
53 | diff AND timestamp without time zone '2038-01-01';
54 | diff
----+---------------------------------------- ----+----------------------------------------
| @ 9863 days 8 hours ago | @ 9863 days ago
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1.00 secs | @ 39 days 17 hours 32 mins 1.00 secs
| @ 39 days 17 hours 32 mins 2.00 secs | @ 39 days 17 hours 32 mins 2.00 secs
...@@ -717,12 +514,13 @@ SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff ...@@ -717,12 +514,13 @@ SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 159 days 16 hours 32 mins 1 sec | @ 159 days 17 hours 32 mins 1 sec
| @ 1724 days 18 hours 19 mins 20 secs
| @ 1168 days 8 hours 14 mins 1 sec | @ 1168 days 8 hours 14 mins 1 sec
| @ 1168 days 4 hours 14 mins 2 secs | @ 1168 days 13 hours 14 mins 2 secs
| @ 1168 days 2 hours 14 mins 3 secs | @ 1168 days 12 hours 14 mins 3 secs
| @ 1168 days 3 hours 14 mins 4 secs | @ 1168 days 3 hours 14 mins 4 secs
| @ 1168 days 1 hour 14 mins 5 secs | @ 1168 days 2 hours 14 mins 5 secs
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins | @ 39 days 17 hours 32 mins
...@@ -731,10 +529,10 @@ SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff ...@@ -731,10 +529,10 @@ SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 9 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 9 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 9 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 159 days 17 hours 32 mins 1 sec | @ 159 days 18 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
| @ 40 days 17 hours 32 mins 1 sec | @ 40 days 17 hours 32 mins 1 sec
| @ 41 days 17 hours 32 mins 1 sec | @ 41 days 17 hours 32 mins 1 sec
...@@ -757,73 +555,74 @@ SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff ...@@ -757,73 +555,74 @@ SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff
| @ 1094 days 17 hours 32 mins 1 sec | @ 1094 days 17 hours 32 mins 1 sec
| @ 1459 days 17 hours 32 mins 1 sec | @ 1459 days 17 hours 32 mins 1 sec
| @ 1460 days 17 hours 32 mins 1 sec | @ 1460 days 17 hours 32 mins 1 sec
(53 rows) (54 rows)
SELECT '' AS "53", date_part( 'year', d1) AS year, date_part( 'month', d1) AS month, SELECT '' AS "54", date_part( 'year', d1) AS year, date_part( 'month', d1) AS month,
date_part( 'day', d1) AS day, date_part( 'hour', d1) AS hour, date_part( 'day', d1) AS day, date_part( 'hour', d1) AS hour,
date_part( 'minute', d1) AS minute, date_part( 'second', d1) AS second date_part( 'minute', d1) AS minute, date_part( 'second', d1) AS second
FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
53 | year | month | day | hour | minute | second 54 | year | month | day | hour | minute | second
----+------+-------+-----+------+--------+---------- ----+------+-------+-----+------+--------+----------
| 1969 | 12 | 31 | 16 | 0 | 0 | 1969 | 12 | 31 | 16 | 0 | 0
| 1997 | 2 | 10 | 17 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1.000001 | 1997 | 2 | 10 | 9 | 32 | 1.000001
| 1997 | 2 | 10 | 17 | 32 | 1.999999 | 1997 | 2 | 10 | 9 | 32 | 1.999999
| 1997 | 2 | 10 | 17 | 32 | 1.4 | 1997 | 2 | 10 | 9 | 32 | 1.4
| 1997 | 2 | 10 | 17 | 32 | 1.5 | 1997 | 2 | 10 | 9 | 32 | 1.5
| 1997 | 2 | 10 | 17 | 32 | 1.6 | 1997 | 2 | 10 | 9 | 32 | 1.6
| 1997 | 1 | 2 | 0 | 0 | 0 | 1997 | 1 | 1 | 16 | 0 | 0
| 1997 | 1 | 2 | 3 | 4 | 5 | 1997 | 1 | 1 | 19 | 4 | 5
| 1997 | 2 | 10 | 17 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 6 | 10 | 17 | 32 | 1 | 1997 | 6 | 10 | 10 | 32 | 1
| 2000 | 3 | 15 | 8 | 14 | 1 | 2001 | 9 | 22 | 11 | 19 | 20
| 2000 | 3 | 15 | 4 | 14 | 2 | 2000 | 3 | 15 | 0 | 14 | 1
| 2000 | 3 | 15 | 2 | 14 | 3 | 2000 | 3 | 15 | 5 | 14 | 2
| 2000 | 3 | 15 | 3 | 14 | 4 | 2000 | 3 | 15 | 4 | 14 | 3
| 2000 | 3 | 15 | 1 | 14 | 5 | 2000 | 3 | 14 | 19 | 14 | 4
| 1997 | 2 | 10 | 17 | 32 | 1 | 2000 | 3 | 14 | 18 | 14 | 5
| 1997 | 2 | 10 | 17 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 0 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 0
| 1997 | 2 | 10 | 17 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 9 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 9 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 6 | 10 | 11 | 32 | 1
| 1997 | 2 | 10 | 9 | 32 | 1 | 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 6 | 10 | 18 | 32 | 1 | 1997 | 2 | 11 | 9 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1 | 1997 | 2 | 12 | 9 | 32 | 1
| 1997 | 2 | 11 | 17 | 32 | 1 | 1997 | 2 | 13 | 9 | 32 | 1
| 1997 | 2 | 12 | 17 | 32 | 1 | 1997 | 2 | 14 | 9 | 32 | 1
| 1997 | 2 | 13 | 17 | 32 | 1 | 1997 | 2 | 15 | 9 | 32 | 1
| 1997 | 2 | 14 | 17 | 32 | 1 | 1997 | 2 | 16 | 9 | 32 | 1
| 1997 | 2 | 15 | 17 | 32 | 1 | 1997 | 2 | 16 | 9 | 32 | 1
| 1997 | 2 | 16 | 17 | 32 | 1 | 1996 | 2 | 28 | 9 | 32 | 1
| 1997 | 2 | 16 | 17 | 32 | 1 | 1996 | 2 | 29 | 9 | 32 | 1
| 1996 | 2 | 28 | 17 | 32 | 1 | 1996 | 3 | 1 | 9 | 32 | 1
| 1996 | 2 | 29 | 17 | 32 | 1 | 1996 | 12 | 30 | 9 | 32 | 1
| 1996 | 3 | 1 | 17 | 32 | 1 | 1996 | 12 | 31 | 9 | 32 | 1
| 1996 | 12 | 30 | 17 | 32 | 1 | 1997 | 1 | 1 | 9 | 32 | 1
| 1996 | 12 | 31 | 17 | 32 | 1 | 1997 | 2 | 28 | 9 | 32 | 1
| 1997 | 1 | 1 | 17 | 32 | 1 | 1997 | 3 | 1 | 9 | 32 | 1
| 1997 | 2 | 28 | 17 | 32 | 1 | 1997 | 12 | 30 | 9 | 32 | 1
| 1997 | 3 | 1 | 17 | 32 | 1 | 1997 | 12 | 31 | 9 | 32 | 1
| 1997 | 12 | 30 | 17 | 32 | 1 | 1999 | 12 | 31 | 9 | 32 | 1
| 1997 | 12 | 31 | 17 | 32 | 1 | 2000 | 1 | 1 | 9 | 32 | 1
| 1999 | 12 | 31 | 17 | 32 | 1 | 2000 | 12 | 31 | 9 | 32 | 1
| 2000 | 1 | 1 | 17 | 32 | 1 | 2001 | 1 | 1 | 9 | 32 | 1
| 2000 | 12 | 31 | 17 | 32 | 1 (54 rows)
| 2001 | 1 | 1 | 17 | 32 | 1
(53 rows)
SELECT '' AS "53", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec, SELECT '' AS "54", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec,
date_part( 'usec', d1) AS usec date_part( 'usec', d1) AS usec
FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
53 | quarter | msec | usec 54 | quarter | msec | usec
----+---------+----------------------+------------------- ----+---------+----------------------+-------------------
| 4 | 0 | 0 | 4 | 0 | 0
| 1 | 0 | 0 | 1 | 0 | 0
...@@ -839,6 +638,7 @@ SELECT '' AS "53", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) ...@@ -839,6 +638,7 @@ SELECT '' AS "53", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1)
| 1 | 0 | 0 | 1 | 0 | 0
| 1 | 0 | 0 | 1 | 0 | 0
| 2 | 0 | 0 | 2 | 0 | 0
| 3 | 0 | 0
| 1 | 0 | 0 | 1 | 0 | 0
| 1 | 0 | 0 | 1 | 0 | 0
| 1 | 0 | 0 | 1 | 0 | 0
...@@ -878,21 +678,17 @@ SELECT '' AS "53", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) ...@@ -878,21 +678,17 @@ SELECT '' AS "53", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1)
| 1 | 0 | 0 | 1 | 0 | 0
| 4 | 0 | 0 | 4 | 0 | 0
| 1 | 0 | 0 | 1 | 0 | 0
(53 rows) (54 rows)
-- TO_CHAR() -- TO_CHAR()
--
SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon') SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon')
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
to_char_1 | to_char to_char_1 | to_char
-----------+------------------------------------------------------------------------------------------ -----------+------------------------------------------------------------------------------------------
|
| |
| |
| THURSDAY Thursday thursday THU Thu thu JANUARY January january I JAN Jan jan | THURSDAY Thursday thursday THU Thu thu JANUARY January january I JAN Jan jan
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
|
|
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
...@@ -905,6 +701,7 @@ SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM M ...@@ -905,6 +701,7 @@ SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM M
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| TUESDAY Tuesday tuesday TUE Tue tue JUNE June june VI JUN Jun jun | TUESDAY Tuesday tuesday TUE Tue tue JUNE June june VI JUN Jun jun
| SATURDAY Saturday saturday SAT Sat sat SEPTEMBER September september IX SEP Sep sep
| WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar | WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
| WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar | WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
| WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar | WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
...@@ -952,20 +749,16 @@ SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM M ...@@ -952,20 +749,16 @@ SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM M
| SATURDAY Saturday saturday SAT Sat sat JANUARY January january I JAN Jan jan | SATURDAY Saturday saturday SAT Sat sat JANUARY January january I JAN Jan jan
| SUNDAY Sunday sunday SUN Sun sun DECEMBER December december XII DEC Dec dec | SUNDAY Sunday sunday SUN Sun sun DECEMBER December december XII DEC Dec dec
| MONDAY Monday monday MON Mon mon JANUARY January january I JAN Jan jan | MONDAY Monday monday MON Mon mon JANUARY January january I JAN Jan jan
(66 rows) (64 rows)
SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM') SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM')
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
to_char_2 | to_char to_char_2 | to_char
-----------+-------------------------------------------------------------- -----------+--------------------------------------------------------------
|
| |
| |
| THURSDAY Thursday thursday JANUARY January january I | THURSDAY Thursday thursday JANUARY January january I
| MONDAY Monday monday FEBRUARY February february II | MONDAY Monday monday FEBRUARY February february II
|
|
| MONDAY Monday monday FEBRUARY February february II | MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II | MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II | MONDAY Monday monday FEBRUARY February february II
...@@ -978,6 +771,7 @@ SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth F ...@@ -978,6 +771,7 @@ SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth F
| MONDAY Monday monday FEBRUARY February february II | MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II | MONDAY Monday monday FEBRUARY February february II
| TUESDAY Tuesday tuesday JUNE June june VI | TUESDAY Tuesday tuesday JUNE June june VI
| SATURDAY Saturday saturday SEPTEMBER September september IX
| WEDNESDAY Wednesday wednesday MARCH March march III | WEDNESDAY Wednesday wednesday MARCH March march III
| WEDNESDAY Wednesday wednesday MARCH March march III | WEDNESDAY Wednesday wednesday MARCH March march III
| WEDNESDAY Wednesday wednesday MARCH March march III | WEDNESDAY Wednesday wednesday MARCH March march III
...@@ -1025,19 +819,16 @@ SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth F ...@@ -1025,19 +819,16 @@ SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth F
| SATURDAY Saturday saturday JANUARY January january I | SATURDAY Saturday saturday JANUARY January january I
| SUNDAY Sunday sunday DECEMBER December december XII | SUNDAY Sunday sunday DECEMBER December december XII
| MONDAY Monday monday JANUARY January january I | MONDAY Monday monday JANUARY January january I
(66 rows) (64 rows)
SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J') SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J')
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
to_char_3 | to_char to_char_3 | to_char
-----------+------------------------------------------------- -----------+-------------------------------------------------
|
| |
| |
| 1,970 1970 970 70 0 20 1 01 01 001 01 5 2440588 | 1,970 1970 970 70 0 20 1 01 01 001 01 5 2440588
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
|
|
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
...@@ -1050,6 +841,7 @@ SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J') ...@@ -1050,6 +841,7 @@ SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J')
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 2 06 23 161 10 3 2450610 | 1,997 1997 997 97 7 20 2 06 23 161 10 3 2450610
| 2,001 2001 001 01 1 21 3 09 38 265 22 7 2452175
| 2,000 2000 000 00 0 21 1 03 11 075 15 4 2451619 | 2,000 2000 000 00 0 21 1 03 11 075 15 4 2451619
| 2,000 2000 000 00 0 21 1 03 11 075 15 4 2451619 | 2,000 2000 000 00 0 21 1 03 11 075 15 4 2451619
| 2,000 2000 000 00 0 21 1 03 11 075 15 4 2451619 | 2,000 2000 000 00 0 21 1 03 11 075 15 4 2451619
...@@ -1097,20 +889,16 @@ SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J') ...@@ -1097,20 +889,16 @@ SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J')
| 2,000 2000 000 00 0 21 1 01 01 001 01 7 2451545 | 2,000 2000 000 00 0 21 1 01 01 001 01 7 2451545
| 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910 | 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910
| 2,001 2001 001 01 1 21 1 01 01 001 01 2 2451911 | 2,001 2001 001 01 1 21 1 01 01 001 01 2 2451911
(66 rows) (64 rows)
SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ') SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ')
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
to_char_4 | to_char to_char_4 | to_char
-----------+------------------------------------------------- -----------+-------------------------------------------------
|
| |
| |
| 1,970 1970 970 70 0 20 1 1 1 1 1 5 2440588 | 1,970 1970 970 70 0 20 1 1 1 1 1 5 2440588
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
|
|
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
...@@ -1123,6 +911,7 @@ SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM ...@@ -1123,6 +911,7 @@ SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 2 6 23 161 10 3 2450610 | 1,997 1997 997 97 7 20 2 6 23 161 10 3 2450610
| 2,001 2001 001 01 1 21 3 9 38 265 22 7 2452175
| 2,000 2000 000 00 0 21 1 3 11 75 15 4 2451619 | 2,000 2000 000 00 0 21 1 3 11 75 15 4 2451619
| 2,000 2000 000 00 0 21 1 3 11 75 15 4 2451619 | 2,000 2000 000 00 0 21 1 3 11 75 15 4 2451619
| 2,000 2000 000 00 0 21 1 3 11 75 15 4 2451619 | 2,000 2000 000 00 0 21 1 3 11 75 15 4 2451619
...@@ -1170,20 +959,16 @@ SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM ...@@ -1170,20 +959,16 @@ SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM
| 2,000 2000 000 00 0 21 1 1 1 1 1 7 2451545 | 2,000 2000 000 00 0 21 1 1 1 1 1 7 2451545
| 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910 | 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910
| 2,001 2001 001 01 1 21 1 1 1 1 1 2 2451911 | 2,001 2001 001 01 1 21 1 1 1 1 1 2 2451911
(66 rows) (64 rows)
SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS') SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS')
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
to_char_5 | to_char to_char_5 | to_char
-----------+---------------------- -----------+----------------------
|
| |
| |
| 12 12 00 00 00 0 | 12 12 00 00 00 0
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
|
|
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
...@@ -1196,11 +981,12 @@ SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS') ...@@ -1196,11 +981,12 @@ SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS')
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 06 06 18 19 20 65960
| 08 08 08 14 01 29641 | 08 08 08 14 01 29641
| 04 04 04 14 02 15242 | 01 01 13 14 02 47642
| 02 02 02 14 03 8043 | 12 12 12 14 03 44043
| 03 03 03 14 04 11644 | 03 03 03 14 04 11644
| 01 01 01 14 05 4445 | 02 02 02 14 05 8045
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 05 05 17 32 00 63120 | 05 05 17 32 00 63120
...@@ -1209,9 +995,9 @@ SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS') ...@@ -1209,9 +995,9 @@ SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS')
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 09 09 09 32 01 34321 | 05 05 17 32 01 63121
| 09 09 09 32 01 34321 | 05 05 17 32 01 63121
| 09 09 09 32 01 34321 | 05 05 17 32 01 63121
| 06 06 18 32 01 66721 | 06 06 18 32 01 66721
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
...@@ -1243,92 +1029,86 @@ SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS') ...@@ -1243,92 +1029,86 @@ SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS')
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
| 05 05 17 32 01 63121 | 05 05 17 32 01 63121
(66 rows) (64 rows)
SELECT '' AS to_char_6, to_char(d1, '"HH:MI:SS is" HH:MI:SS "\\"text bettween quote marks\\""') SELECT '' AS to_char_6, to_char(d1, '"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""')
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
to_char_6 | to_char to_char_6 | to_char
-----------+-------------------------------------------------- -----------+-------------------------------------------------
|
|
|
| HH:MI:SS is 12:00:00 "text bettween quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks"
| |
| |
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 12:00:00 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 12:00:00 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 03:04:05 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 12:00:00 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 03:04:05 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 08:14:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 04:14:02 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 02:14:03 "text bettween quote marks" | HH:MI:SS is 06:19:20 "text between quote marks"
| HH:MI:SS is 03:14:04 "text bettween quote marks" | HH:MI:SS is 08:14:01 "text between quote marks"
| HH:MI:SS is 01:14:05 "text bettween quote marks" | HH:MI:SS is 01:14:02 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 12:14:03 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 03:14:04 "text between quote marks"
| HH:MI:SS is 05:32:00 "text bettween quote marks" | HH:MI:SS is 02:14:05 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:00 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 09:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 09:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 09:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 06:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 06:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text bettween quote marks" | HH:MI:SS is 05:32:01 "text between quote marks"
(66 rows) | HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
(64 rows)
SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS') SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS')
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
to_char_7 | to_char to_char_7 | to_char
-----------+------------------------ -----------+------------------------
|
| |
| |
| 00--text--00--text--00 | 00--text--00--text--00
| 17--text--32--text--01 | 17--text--32--text--01
|
|
| 17--text--32--text--01 | 17--text--32--text--01
| 17--text--32--text--01 | 17--text--32--text--01
| 17--text--32--text--01 | 17--text--32--text--01
...@@ -1341,11 +1121,12 @@ SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS') ...@@ -1341,11 +1121,12 @@ SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS')
| 17--text--32--text--01 | 17--text--32--text--01
| 17--text--32--text--01 | 17--text--32--text--01
| 17--text--32--text--01 | 17--text--32--text--01
| 18--text--19--text--20
| 08--text--14--text--01 | 08--text--14--text--01
| 04--text--14--text--02 | 13--text--14--text--02
| 02--text--14--text--03 | 12--text--14--text--03
| 03--text--14--text--04 | 03--text--14--text--04
| 01--text--14--text--05 | 02--text--14--text--05
| 17--text--32--text--01 | 17--text--32--text--01
| 17--text--32--text--01 | 17--text--32--text--01
| 17--text--32--text--00 | 17--text--32--text--00
...@@ -1354,9 +1135,9 @@ SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS') ...@@ -1354,9 +1135,9 @@ SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS')
| 17--text--32--text--01 | 17--text--32--text--01
| 17--text--32--text--01 | 17--text--32--text--01
| 17--text--32--text--01 | 17--text--32--text--01
| 09--text--32--text--01 | 17--text--32--text--01
| 09--text--32--text--01 | 17--text--32--text--01
| 09--text--32--text--01 | 17--text--32--text--01
| 18--text--32--text--01 | 18--text--32--text--01
| 17--text--32--text--01 | 17--text--32--text--01
| 17--text--32--text--01 | 17--text--32--text--01
...@@ -1388,19 +1169,16 @@ SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS') ...@@ -1388,19 +1169,16 @@ SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS')
| 17--text--32--text--01 | 17--text--32--text--01
| 17--text--32--text--01 | 17--text--32--text--01
| 17--text--32--text--01 | 17--text--32--text--01
(66 rows) (64 rows)
SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth') SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth')
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
to_char_8 | to_char to_char_8 | to_char
-----------+------------------------- -----------+-------------------------
|
| |
| |
| 1970TH 1970th 2440588th | 1970TH 1970th 2440588th
| 1997TH 1997th 2450490th | 1997TH 1997th 2450490th
|
|
| 1997TH 1997th 2450490th | 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th | 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th | 1997TH 1997th 2450490th
...@@ -1413,6 +1191,7 @@ SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth') ...@@ -1413,6 +1191,7 @@ SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth')
| 1997TH 1997th 2450490th | 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th | 1997TH 1997th 2450490th
| 1997TH 1997th 2450610th | 1997TH 1997th 2450610th
| 2001ST 2001st 2452175th
| 2000TH 2000th 2451619th | 2000TH 2000th 2451619th
| 2000TH 2000th 2451619th | 2000TH 2000th 2451619th
| 2000TH 2000th 2451619th | 2000TH 2000th 2451619th
...@@ -1460,20 +1239,17 @@ SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth') ...@@ -1460,20 +1239,17 @@ SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth')
| 2000TH 2000th 2451545th | 2000TH 2000th 2451545th
| 2000TH 2000th 2451910th | 2000TH 2000th 2451910th
| 2001ST 2001st 2451911th | 2001ST 2001st 2451911th
(66 rows) (64 rows)
SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm') SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm')
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
to_char_9 | to_char to_char_9 | to_char
-----------+--------------------------------------------------------------------- -----------+---------------------------------------------------------------------
|
| |
| |
| 1970 A.D. 1970 a.d. 1970 ad 12:00:00 A.M. 12:00:00 a.m. 12:00:00 am | 1970 A.D. 1970 a.d. 1970 ad 12:00:00 A.M. 12:00:00 a.m. 12:00:00 am
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
|
|
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
...@@ -1486,11 +1262,12 @@ SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. H ...@@ -1486,11 +1262,12 @@ SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. H
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 2001 A.D. 2001 a.d. 2001 ad 06:19:20 P.M. 06:19:20 p.m. 06:19:20 pm
| 2000 A.D. 2000 a.d. 2000 ad 08:14:01 A.M. 08:14:01 a.m. 08:14:01 am | 2000 A.D. 2000 a.d. 2000 ad 08:14:01 A.M. 08:14:01 a.m. 08:14:01 am
| 2000 A.D. 2000 a.d. 2000 ad 04:14:02 A.M. 04:14:02 a.m. 04:14:02 am | 2000 A.D. 2000 a.d. 2000 ad 01:14:02 P.M. 01:14:02 p.m. 01:14:02 pm
| 2000 A.D. 2000 a.d. 2000 ad 02:14:03 A.M. 02:14:03 a.m. 02:14:03 am | 2000 A.D. 2000 a.d. 2000 ad 12:14:03 P.M. 12:14:03 p.m. 12:14:03 pm
| 2000 A.D. 2000 a.d. 2000 ad 03:14:04 A.M. 03:14:04 a.m. 03:14:04 am | 2000 A.D. 2000 a.d. 2000 ad 03:14:04 A.M. 03:14:04 a.m. 03:14:04 am
| 2000 A.D. 2000 a.d. 2000 ad 01:14:05 A.M. 01:14:05 a.m. 01:14:05 am | 2000 A.D. 2000 a.d. 2000 ad 02:14:05 A.M. 02:14:05 a.m. 02:14:05 am
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:00 P.M. 05:32:00 p.m. 05:32:00 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:00 P.M. 05:32:00 p.m. 05:32:00 pm
...@@ -1499,9 +1276,9 @@ SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. H ...@@ -1499,9 +1276,9 @@ SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. H
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 09:32:01 A.M. 09:32:01 a.m. 09:32:01 am | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 09:32:01 A.M. 09:32:01 a.m. 09:32:01 am | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 09:32:01 A.M. 09:32:01 a.m. 09:32:01 am | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 06:32:01 P.M. 06:32:01 p.m. 06:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 06:32:01 P.M. 06:32:01 p.m. 06:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
...@@ -1533,17 +1310,15 @@ SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. H ...@@ -1533,17 +1310,15 @@ SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. H
| 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 2001 A.D. 2001 a.d. 2001 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 2001 A.D. 2001 a.d. 2001 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
(66 rows) (64 rows)
-- TO_TIMESTAMP() -- TO_TIMESTAMP()
--
SELECT '' AS to_timestamp_1, to_timestamp('0097/Feb/16 --> 08:14:30', 'YYYY/Mon/DD --> HH:MI:SS'); SELECT '' AS to_timestamp_1, to_timestamp('0097/Feb/16 --> 08:14:30', 'YYYY/Mon/DD --> HH:MI:SS');
to_timestamp_1 | to_timestamp to_timestamp_1 | to_timestamp
----------------+-------------------------- ----------------+--------------------------
| Sat Feb 16 08:14:30 0097 | Sat Feb 16 08:14:30 0097
(1 row) (1 row)
SELECT '' AS to_timestamp_2, to_timestamp('97/2/16 8:14:30', 'FMYYYY/FMMM/FMDD FMHH:FMMI:FMSS'); SELECT '' AS to_timestamp_2, to_timestamp('97/2/16 8:14:30', 'FMYYYY/FMMM/FMDD FMHH:FMMI:FMSS');
to_timestamp_2 | to_timestamp to_timestamp_2 | to_timestamp
----------------+-------------------------- ----------------+--------------------------
...@@ -1569,8 +1344,8 @@ SELECT '' AS to_timestamp_5, to_timestamp('1,582nd VIII 21', 'Y,YYYth FMRM DD'); ...@@ -1569,8 +1344,8 @@ SELECT '' AS to_timestamp_5, to_timestamp('1,582nd VIII 21', 'Y,YYYth FMRM DD');
| Sat Aug 21 00:00:00 1582 | Sat Aug 21 00:00:00 1582
(1 row) (1 row)
SELECT '' AS to_timestamp_6, to_timestamp('15 "text bettween quote marks" 98 54 45', SELECT '' AS to_timestamp_6, to_timestamp('15 "text between quote marks" 98 54 45',
'HH "\\text bettween quote marks\\"" YY MI SS'); 'HH "\\text between quote marks\\"" YY MI SS');
to_timestamp_6 | to_timestamp to_timestamp_6 | to_timestamp
----------------+------------------------------ ----------------+------------------------------
| Thu Jan 01 15:54:45 1998 PST | Thu Jan 01 15:54:45 1998 PST
......
--
-- TIMESTAMPTZ
--
-- needed so tests pass even in Australia
SET australian_timezones = 'off';
CREATE TABLE TIMESTAMPTZ_TBL ( d1 timestamp with time zone);
INSERT INTO TIMESTAMPTZ_TBL VALUES ('now');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('current');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('today');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('yesterday');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('tomorrow');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('tomorrow EST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('tomorrow zulu');
SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'today';
one
-----
1
(1 row)
SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'tomorrow';
one
-----
1
(1 row)
SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'yesterday';
one
-----
1
(1 row)
SELECT count(*) AS None FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'now';
none
------
0
(1 row)
DELETE FROM TIMESTAMPTZ_TBL;
-- verify uniform transaction time within transaction block
BEGIN;
INSERT INTO TIMESTAMPTZ_TBL VALUES ('now');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('now');
SELECT count(*) AS two FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'now';
two
-----
2
(1 row)
END;
DELETE FROM TIMESTAMPTZ_TBL;
-- Special values
INSERT INTO TIMESTAMPTZ_TBL VALUES ('-infinity');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('infinity');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('epoch');
-- Obsolete special values
INSERT INTO TIMESTAMPTZ_TBL VALUES ('invalid');
ERROR: Timestamp with time zone 'invalid' no longer supported
-- Postgres v6.0 standard output format
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Invalid Abstime');
ERROR: Bad timestamp external representation 'Invalid Abstime'
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Undefined Abstime');
ERROR: Bad timestamp external representation 'Undefined Abstime'
-- Variations on Postgres v6.1 standard output format
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.000001 1997 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.999999 1997 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.4 1997 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.5 1997 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.6 1997 PST');
-- ISO 8601 format
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-01-02');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-01-02 03:04:05');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-02-10 17:32:01-08');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-02-10 17:32:01-0800');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-02-10 17:32:01 -08:00');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970210 173201 -0800');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-06-10 17:32:01 -07:00');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('2001-09-22T18:19:20');
-- POSIX format
INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 08:14:01 GMT+8');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 13:14:02 GMT-1');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 12:14:03 GMT -2');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 03:14:04 EST+3');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 02:14:05 EST +2:00');
-- Variations for acceptable input formats
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 17:32:01 1997 -0800');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 5:32PM 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997/02/10 17:32:01-0800');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-02-10 17:32:01 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb-10-1997 17:32:01 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('02-10-1997 17:32:01 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970210 173201 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('97FEB10 5:32:01PM UTC');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('97/02/10 17:32:01 UTC');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('97.041 17:32:01 UTC');
-- Check date conversion and date arithmetic
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-06-10 18:32:01 PDT');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 11 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 12 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 13 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 14 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 15 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 0097 BC');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 0097');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 0597');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1097');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1697');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1797');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1897');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 2097');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 28 17:32:01 1996');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 29 17:32:01 1996');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mar 01 17:32:01 1996');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 30 17:32:01 1996');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 1996');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Jan 01 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 28 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 29 17:32:01 1997');
ERROR: Bad timestamp external representation 'Feb 29 17:32:01 1997'
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mar 01 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 30 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 1999');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Jan 01 17:32:01 2000');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 2000');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Jan 01 17:32:01 2001');
-- Currently unsupported syntax and ranges
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 -0097');
ERROR: Bad timestamp external representation 'Feb 16 17:32:01 -0097'
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 5097 BC');
ERROR: Timestamp out of range 'Feb 16 17:32:01 5097 BC'
SELECT '' AS "64", d1 FROM TIMESTAMPTZ_TBL;
64 | d1
----+---------------------------------
| -infinity
| infinity
| Wed Dec 31 16:00:00 1969 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01.00 1997 PST
| Mon Feb 10 17:32:02.00 1997 PST
| Mon Feb 10 17:32:01.40 1997 PST
| Mon Feb 10 17:32:01.50 1997 PST
| Mon Feb 10 17:32:01.60 1997 PST
| Thu Jan 02 00:00:00 1997 PST
| Thu Jan 02 03:04:05 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Tue Jun 10 17:32:01 1997 PDT
| Sat Sep 22 11:19:20 2001 PDT
| Wed Mar 15 08:14:01 2000 PST
| Wed Mar 15 04:14:02 2000 PST
| Wed Mar 15 02:14:03 2000 PST
| Wed Mar 15 03:14:04 2000 PST
| Wed Mar 15 01:14:05 2000 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:00 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 09:32:01 1997 PST
| Mon Feb 10 09:32:01 1997 PST
| Mon Feb 10 09:32:01 1997 PST
| Tue Jun 10 18:32:01 1997 PDT
| Mon Feb 10 17:32:01 1997 PST
| Tue Feb 11 17:32:01 1997 PST
| Wed Feb 12 17:32:01 1997 PST
| Thu Feb 13 17:32:01 1997 PST
| Fri Feb 14 17:32:01 1997 PST
| Sat Feb 15 17:32:01 1997 PST
| Sun Feb 16 17:32:01 1997 PST
| Tue Feb 16 17:32 0097 BC
| Sat Feb 16 17:32:01 0097
| Thu Feb 16 17:32:01 0597
| Tue Feb 16 17:32:01 1097
| Sat Feb 16 17:32:01 1697
| Thu Feb 16 17:32:01 1797
| Tue Feb 16 17:32:01 1897
| Sun Feb 16 17:32:01 1997 PST
| Sat Feb 16 17:32:01 2097
| Wed Feb 28 17:32:01 1996 PST
| Thu Feb 29 17:32:01 1996 PST
| Fri Mar 01 17:32:01 1996 PST
| Mon Dec 30 17:32:01 1996 PST
| Tue Dec 31 17:32:01 1996 PST
| Wed Jan 01 17:32:01 1997 PST
| Fri Feb 28 17:32:01 1997 PST
| Sat Mar 01 17:32:01 1997 PST
| Tue Dec 30 17:32:01 1997 PST
| Wed Dec 31 17:32:01 1997 PST
| Fri Dec 31 17:32:01 1999 PST
| Sat Jan 01 17:32:01 2000 PST
| Sun Dec 31 17:32:01 2000 PST
| Mon Jan 01 17:32:01 2001 PST
(64 rows)
-- Demonstrate functions and operators
SELECT '' AS "48", d1 FROM TIMESTAMPTZ_TBL
WHERE d1 > timestamp with time zone '1997-01-02';
48 | d1
----+---------------------------------
| infinity
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01.00 1997 PST
| Mon Feb 10 17:32:02.00 1997 PST
| Mon Feb 10 17:32:01.40 1997 PST
| Mon Feb 10 17:32:01.50 1997 PST
| Mon Feb 10 17:32:01.60 1997 PST
| Thu Jan 02 03:04:05 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Tue Jun 10 17:32:01 1997 PDT
| Sat Sep 22 11:19:20 2001 PDT
| Wed Mar 15 08:14:01 2000 PST
| Wed Mar 15 04:14:02 2000 PST
| Wed Mar 15 02:14:03 2000 PST
| Wed Mar 15 03:14:04 2000 PST
| Wed Mar 15 01:14:05 2000 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:00 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 09:32:01 1997 PST
| Mon Feb 10 09:32:01 1997 PST
| Mon Feb 10 09:32:01 1997 PST
| Tue Jun 10 18:32:01 1997 PDT
| Mon Feb 10 17:32:01 1997 PST
| Tue Feb 11 17:32:01 1997 PST
| Wed Feb 12 17:32:01 1997 PST
| Thu Feb 13 17:32:01 1997 PST
| Fri Feb 14 17:32:01 1997 PST
| Sat Feb 15 17:32:01 1997 PST
| Sun Feb 16 17:32:01 1997 PST
| Sun Feb 16 17:32:01 1997 PST
| Sat Feb 16 17:32:01 2097
| Fri Feb 28 17:32:01 1997 PST
| Sat Mar 01 17:32:01 1997 PST
| Tue Dec 30 17:32:01 1997 PST
| Wed Dec 31 17:32:01 1997 PST
| Fri Dec 31 17:32:01 1999 PST
| Sat Jan 01 17:32:01 2000 PST
| Sun Dec 31 17:32:01 2000 PST
| Mon Jan 01 17:32:01 2001 PST
(48 rows)
SELECT '' AS "15", d1 FROM TIMESTAMPTZ_TBL
WHERE d1 < timestamp with time zone '1997-01-02';
15 | d1
----+------------------------------
| -infinity
| Wed Dec 31 16:00:00 1969 PST
| Tue Feb 16 17:32 0097 BC
| Sat Feb 16 17:32:01 0097
| Thu Feb 16 17:32:01 0597
| Tue Feb 16 17:32:01 1097
| Sat Feb 16 17:32:01 1697
| Thu Feb 16 17:32:01 1797
| Tue Feb 16 17:32:01 1897
| Wed Feb 28 17:32:01 1996 PST
| Thu Feb 29 17:32:01 1996 PST
| Fri Mar 01 17:32:01 1996 PST
| Mon Dec 30 17:32:01 1996 PST
| Tue Dec 31 17:32:01 1996 PST
| Wed Jan 01 17:32:01 1997 PST
(15 rows)
SELECT '' AS one, d1 FROM TIMESTAMPTZ_TBL
WHERE d1 = timestamp with time zone '1997-01-02';
one | d1
-----+------------------------------
| Thu Jan 02 00:00:00 1997 PST
(1 row)
SELECT '' AS "63", d1 FROM TIMESTAMPTZ_TBL
WHERE d1 != timestamp with time zone '1997-01-02';
63 | d1
----+---------------------------------
| -infinity
| infinity
| Wed Dec 31 16:00:00 1969 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01.00 1997 PST
| Mon Feb 10 17:32:02.00 1997 PST
| Mon Feb 10 17:32:01.40 1997 PST
| Mon Feb 10 17:32:01.50 1997 PST
| Mon Feb 10 17:32:01.60 1997 PST
| Thu Jan 02 03:04:05 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Tue Jun 10 17:32:01 1997 PDT
| Sat Sep 22 11:19:20 2001 PDT
| Wed Mar 15 08:14:01 2000 PST
| Wed Mar 15 04:14:02 2000 PST
| Wed Mar 15 02:14:03 2000 PST
| Wed Mar 15 03:14:04 2000 PST
| Wed Mar 15 01:14:05 2000 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:00 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 09:32:01 1997 PST
| Mon Feb 10 09:32:01 1997 PST
| Mon Feb 10 09:32:01 1997 PST
| Tue Jun 10 18:32:01 1997 PDT
| Mon Feb 10 17:32:01 1997 PST
| Tue Feb 11 17:32:01 1997 PST
| Wed Feb 12 17:32:01 1997 PST
| Thu Feb 13 17:32:01 1997 PST
| Fri Feb 14 17:32:01 1997 PST
| Sat Feb 15 17:32:01 1997 PST
| Sun Feb 16 17:32:01 1997 PST
| Tue Feb 16 17:32 0097 BC
| Sat Feb 16 17:32:01 0097
| Thu Feb 16 17:32:01 0597
| Tue Feb 16 17:32:01 1097
| Sat Feb 16 17:32:01 1697
| Thu Feb 16 17:32:01 1797
| Tue Feb 16 17:32:01 1897
| Sun Feb 16 17:32:01 1997 PST
| Sat Feb 16 17:32:01 2097
| Wed Feb 28 17:32:01 1996 PST
| Thu Feb 29 17:32:01 1996 PST
| Fri Mar 01 17:32:01 1996 PST
| Mon Dec 30 17:32:01 1996 PST
| Tue Dec 31 17:32:01 1996 PST
| Wed Jan 01 17:32:01 1997 PST
| Fri Feb 28 17:32:01 1997 PST
| Sat Mar 01 17:32:01 1997 PST
| Tue Dec 30 17:32:01 1997 PST
| Wed Dec 31 17:32:01 1997 PST
| Fri Dec 31 17:32:01 1999 PST
| Sat Jan 01 17:32:01 2000 PST
| Sun Dec 31 17:32:01 2000 PST
| Mon Jan 01 17:32:01 2001 PST
(63 rows)
SELECT '' AS "16", d1 FROM TIMESTAMPTZ_TBL
WHERE d1 <= timestamp with time zone '1997-01-02';
16 | d1
----+------------------------------
| -infinity
| Wed Dec 31 16:00:00 1969 PST
| Thu Jan 02 00:00:00 1997 PST
| Tue Feb 16 17:32 0097 BC
| Sat Feb 16 17:32:01 0097
| Thu Feb 16 17:32:01 0597
| Tue Feb 16 17:32:01 1097
| Sat Feb 16 17:32:01 1697
| Thu Feb 16 17:32:01 1797
| Tue Feb 16 17:32:01 1897
| Wed Feb 28 17:32:01 1996 PST
| Thu Feb 29 17:32:01 1996 PST
| Fri Mar 01 17:32:01 1996 PST
| Mon Dec 30 17:32:01 1996 PST
| Tue Dec 31 17:32:01 1996 PST
| Wed Jan 01 17:32:01 1997 PST
(16 rows)
SELECT '' AS "49", d1 FROM TIMESTAMPTZ_TBL
WHERE d1 >= timestamp with time zone '1997-01-02';
49 | d1
----+---------------------------------
| infinity
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01.00 1997 PST
| Mon Feb 10 17:32:02.00 1997 PST
| Mon Feb 10 17:32:01.40 1997 PST
| Mon Feb 10 17:32:01.50 1997 PST
| Mon Feb 10 17:32:01.60 1997 PST
| Thu Jan 02 00:00:00 1997 PST
| Thu Jan 02 03:04:05 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Tue Jun 10 17:32:01 1997 PDT
| Sat Sep 22 11:19:20 2001 PDT
| Wed Mar 15 08:14:01 2000 PST
| Wed Mar 15 04:14:02 2000 PST
| Wed Mar 15 02:14:03 2000 PST
| Wed Mar 15 03:14:04 2000 PST
| Wed Mar 15 01:14:05 2000 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:00 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 17:32:01 1997 PST
| Mon Feb 10 09:32:01 1997 PST
| Mon Feb 10 09:32:01 1997 PST
| Mon Feb 10 09:32:01 1997 PST
| Tue Jun 10 18:32:01 1997 PDT
| Mon Feb 10 17:32:01 1997 PST
| Tue Feb 11 17:32:01 1997 PST
| Wed Feb 12 17:32:01 1997 PST
| Thu Feb 13 17:32:01 1997 PST
| Fri Feb 14 17:32:01 1997 PST
| Sat Feb 15 17:32:01 1997 PST
| Sun Feb 16 17:32:01 1997 PST
| Sun Feb 16 17:32:01 1997 PST
| Sat Feb 16 17:32:01 2097
| Fri Feb 28 17:32:01 1997 PST
| Sat Mar 01 17:32:01 1997 PST
| Tue Dec 30 17:32:01 1997 PST
| Wed Dec 31 17:32:01 1997 PST
| Fri Dec 31 17:32:01 1999 PST
| Sat Jan 01 17:32:01 2000 PST
| Sun Dec 31 17:32:01 2000 PST
| Mon Jan 01 17:32:01 2001 PST
(49 rows)
SELECT '' AS "54", d1 - timestamp with time zone '1997-01-02' AS diff
FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
54 | diff
----+----------------------------------------
| @ 9863 days 8 hours ago
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1.00 secs
| @ 39 days 17 hours 32 mins 2.00 secs
| @ 39 days 17 hours 32 mins 1.40 secs
| @ 39 days 17 hours 32 mins 1.50 secs
| @ 39 days 17 hours 32 mins 1.60 secs
| @ 0
| @ 3 hours 4 mins 5 secs
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 159 days 16 hours 32 mins 1 sec
| @ 1724 days 10 hours 19 mins 20 secs
| @ 1168 days 8 hours 14 mins 1 sec
| @ 1168 days 4 hours 14 mins 2 secs
| @ 1168 days 2 hours 14 mins 3 secs
| @ 1168 days 3 hours 14 mins 4 secs
| @ 1168 days 1 hour 14 mins 5 secs
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 9 hours 32 mins 1 sec
| @ 39 days 9 hours 32 mins 1 sec
| @ 39 days 9 hours 32 mins 1 sec
| @ 159 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 40 days 17 hours 32 mins 1 sec
| @ 41 days 17 hours 32 mins 1 sec
| @ 42 days 17 hours 32 mins 1 sec
| @ 43 days 17 hours 32 mins 1 sec
| @ 44 days 17 hours 32 mins 1 sec
| @ 45 days 17 hours 32 mins 1 sec
| @ 45 days 17 hours 32 mins 1 sec
| @ 308 days 6 hours 27 mins 59 secs ago
| @ 307 days 6 hours 27 mins 59 secs ago
| @ 306 days 6 hours 27 mins 59 secs ago
| @ 2 days 6 hours 27 mins 59 secs ago
| @ 1 day 6 hours 27 mins 59 secs ago
| @ 6 hours 27 mins 59 secs ago
| @ 57 days 17 hours 32 mins 1 sec
| @ 58 days 17 hours 32 mins 1 sec
| @ 362 days 17 hours 32 mins 1 sec
| @ 363 days 17 hours 32 mins 1 sec
| @ 1093 days 17 hours 32 mins 1 sec
| @ 1094 days 17 hours 32 mins 1 sec
| @ 1459 days 17 hours 32 mins 1 sec
| @ 1460 days 17 hours 32 mins 1 sec
(54 rows)
-- Test casting within a BETWEEN qualifier
SELECT '' AS "54", d1 - timestamp with time zone '1997-01-02' AS diff
FROM TIMESTAMPTZ_TBL
WHERE d1 BETWEEN timestamp with time zone '1902-01-01' AND timestamp with time zone '2038-01-01';
54 | diff
----+----------------------------------------
| @ 9863 days 8 hours ago
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1.00 secs
| @ 39 days 17 hours 32 mins 2.00 secs
| @ 39 days 17 hours 32 mins 1.40 secs
| @ 39 days 17 hours 32 mins 1.50 secs
| @ 39 days 17 hours 32 mins 1.60 secs
| @ 0
| @ 3 hours 4 mins 5 secs
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 159 days 16 hours 32 mins 1 sec
| @ 1724 days 10 hours 19 mins 20 secs
| @ 1168 days 8 hours 14 mins 1 sec
| @ 1168 days 4 hours 14 mins 2 secs
| @ 1168 days 2 hours 14 mins 3 secs
| @ 1168 days 3 hours 14 mins 4 secs
| @ 1168 days 1 hour 14 mins 5 secs
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 39 days 9 hours 32 mins 1 sec
| @ 39 days 9 hours 32 mins 1 sec
| @ 39 days 9 hours 32 mins 1 sec
| @ 159 days 17 hours 32 mins 1 sec
| @ 39 days 17 hours 32 mins 1 sec
| @ 40 days 17 hours 32 mins 1 sec
| @ 41 days 17 hours 32 mins 1 sec
| @ 42 days 17 hours 32 mins 1 sec
| @ 43 days 17 hours 32 mins 1 sec
| @ 44 days 17 hours 32 mins 1 sec
| @ 45 days 17 hours 32 mins 1 sec
| @ 45 days 17 hours 32 mins 1 sec
| @ 308 days 6 hours 27 mins 59 secs ago
| @ 307 days 6 hours 27 mins 59 secs ago
| @ 306 days 6 hours 27 mins 59 secs ago
| @ 2 days 6 hours 27 mins 59 secs ago
| @ 1 day 6 hours 27 mins 59 secs ago
| @ 6 hours 27 mins 59 secs ago
| @ 57 days 17 hours 32 mins 1 sec
| @ 58 days 17 hours 32 mins 1 sec
| @ 362 days 17 hours 32 mins 1 sec
| @ 363 days 17 hours 32 mins 1 sec
| @ 1093 days 17 hours 32 mins 1 sec
| @ 1094 days 17 hours 32 mins 1 sec
| @ 1459 days 17 hours 32 mins 1 sec
| @ 1460 days 17 hours 32 mins 1 sec
(54 rows)
SELECT '' AS "54", date_part( 'year', d1) AS year, date_part( 'month', d1) AS month,
date_part( 'day', d1) AS day, date_part( 'hour', d1) AS hour,
date_part( 'minute', d1) AS minute, date_part( 'second', d1) AS second
FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
54 | year | month | day | hour | minute | second
----+------+-------+-----+------+--------+----------
| 1969 | 12 | 31 | 16 | 0 | 0
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1.000001
| 1997 | 2 | 10 | 17 | 32 | 1.999999
| 1997 | 2 | 10 | 17 | 32 | 1.4
| 1997 | 2 | 10 | 17 | 32 | 1.5
| 1997 | 2 | 10 | 17 | 32 | 1.6
| 1997 | 1 | 2 | 0 | 0 | 0
| 1997 | 1 | 2 | 3 | 4 | 5
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 6 | 10 | 17 | 32 | 1
| 2001 | 9 | 22 | 11 | 19 | 20
| 2000 | 3 | 15 | 8 | 14 | 1
| 2000 | 3 | 15 | 4 | 14 | 2
| 2000 | 3 | 15 | 2 | 14 | 3
| 2000 | 3 | 15 | 3 | 14 | 4
| 2000 | 3 | 15 | 1 | 14 | 5
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 0
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 2 | 10 | 9 | 32 | 1
| 1997 | 6 | 10 | 18 | 32 | 1
| 1997 | 2 | 10 | 17 | 32 | 1
| 1997 | 2 | 11 | 17 | 32 | 1
| 1997 | 2 | 12 | 17 | 32 | 1
| 1997 | 2 | 13 | 17 | 32 | 1
| 1997 | 2 | 14 | 17 | 32 | 1
| 1997 | 2 | 15 | 17 | 32 | 1
| 1997 | 2 | 16 | 17 | 32 | 1
| 1997 | 2 | 16 | 17 | 32 | 1
| 1996 | 2 | 28 | 17 | 32 | 1
| 1996 | 2 | 29 | 17 | 32 | 1
| 1996 | 3 | 1 | 17 | 32 | 1
| 1996 | 12 | 30 | 17 | 32 | 1
| 1996 | 12 | 31 | 17 | 32 | 1
| 1997 | 1 | 1 | 17 | 32 | 1
| 1997 | 2 | 28 | 17 | 32 | 1
| 1997 | 3 | 1 | 17 | 32 | 1
| 1997 | 12 | 30 | 17 | 32 | 1
| 1997 | 12 | 31 | 17 | 32 | 1
| 1999 | 12 | 31 | 17 | 32 | 1
| 2000 | 1 | 1 | 17 | 32 | 1
| 2000 | 12 | 31 | 17 | 32 | 1
| 2001 | 1 | 1 | 17 | 32 | 1
(54 rows)
SELECT '' AS "54", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec,
date_part( 'usec', d1) AS usec
FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
54 | quarter | msec | usec
----+---------+----------------------+-------------------
| 4 | 0 | 0
| 1 | 0 | 0
| 1 | 0.000999999999917733 | 0.999999999917733
| 1 | 999.999 | 999999
| 1 | 400 | 400000
| 1 | 500 | 500000
| 1 | 600 | 600000
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 2 | 0 | 0
| 3 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 2 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 4 | 0 | 0
| 4 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 1 | 0 | 0
| 4 | 0 | 0
| 4 | 0 | 0
| 4 | 0 | 0
| 1 | 0 | 0
| 4 | 0 | 0
| 1 | 0 | 0
(54 rows)
-- TO_CHAR()
SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon')
FROM TIMESTAMPTZ_TBL;
to_char_1 | to_char
-----------+------------------------------------------------------------------------------------------
|
|
| WEDNESDAY Wednesday wednesday WED Wed wed DECEMBER December december XII DEC Dec dec
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| THURSDAY Thursday thursday THU Thu thu JANUARY January january I JAN Jan jan
| THURSDAY Thursday thursday THU Thu thu JANUARY January january I JAN Jan jan
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| TUESDAY Tuesday tuesday TUE Tue tue JUNE June june VI JUN Jun jun
| SATURDAY Saturday saturday SAT Sat sat SEPTEMBER September september IX SEP Sep sep
| WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
| WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
| WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
| WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
| WEDNESDAY Wednesday wednesday WED Wed wed MARCH March march III MAR Mar mar
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| TUESDAY Tuesday tuesday TUE Tue tue JUNE June june VI JUN Jun jun
| MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb
| TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb
| WEDNESDAY Wednesday wednesday WED Wed wed FEBRUARY February february II FEB Feb feb
| THURSDAY Thursday thursday THU Thu thu FEBRUARY February february II FEB Feb feb
| FRIDAY Friday friday FRI Fri fri FEBRUARY February february II FEB Feb feb
| SATURDAY Saturday saturday SAT Sat sat FEBRUARY February february II FEB Feb feb
| SUNDAY Sunday sunday SUN Sun sun FEBRUARY February february II FEB Feb feb
| TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb
| SATURDAY Saturday saturday SAT Sat sat FEBRUARY February february II FEB Feb feb
| THURSDAY Thursday thursday THU Thu thu FEBRUARY February february II FEB Feb feb
| TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb
| SATURDAY Saturday saturday SAT Sat sat FEBRUARY February february II FEB Feb feb
| THURSDAY Thursday thursday THU Thu thu FEBRUARY February february II FEB Feb feb
| TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb
| SUNDAY Sunday sunday SUN Sun sun FEBRUARY February february II FEB Feb feb
| SATURDAY Saturday saturday SAT Sat sat FEBRUARY February february II FEB Feb feb
| WEDNESDAY Wednesday wednesday WED Wed wed FEBRUARY February february II FEB Feb feb
| THURSDAY Thursday thursday THU Thu thu FEBRUARY February february II FEB Feb feb
| FRIDAY Friday friday FRI Fri fri MARCH March march III MAR Mar mar
| MONDAY Monday monday MON Mon mon DECEMBER December december XII DEC Dec dec
| TUESDAY Tuesday tuesday TUE Tue tue DECEMBER December december XII DEC Dec dec
| WEDNESDAY Wednesday wednesday WED Wed wed JANUARY January january I JAN Jan jan
| FRIDAY Friday friday FRI Fri fri FEBRUARY February february II FEB Feb feb
| SATURDAY Saturday saturday SAT Sat sat MARCH March march III MAR Mar mar
| TUESDAY Tuesday tuesday TUE Tue tue DECEMBER December december XII DEC Dec dec
| WEDNESDAY Wednesday wednesday WED Wed wed DECEMBER December december XII DEC Dec dec
| FRIDAY Friday friday FRI Fri fri DECEMBER December december XII DEC Dec dec
| SATURDAY Saturday saturday SAT Sat sat JANUARY January january I JAN Jan jan
| SUNDAY Sunday sunday SUN Sun sun DECEMBER December december XII DEC Dec dec
| MONDAY Monday monday MON Mon mon JANUARY January january I JAN Jan jan
(64 rows)
SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM')
FROM TIMESTAMPTZ_TBL;
to_char_2 | to_char
-----------+--------------------------------------------------------------
|
|
| WEDNESDAY Wednesday wednesday DECEMBER December december XII
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| THURSDAY Thursday thursday JANUARY January january I
| THURSDAY Thursday thursday JANUARY January january I
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| TUESDAY Tuesday tuesday JUNE June june VI
| SATURDAY Saturday saturday SEPTEMBER September september IX
| WEDNESDAY Wednesday wednesday MARCH March march III
| WEDNESDAY Wednesday wednesday MARCH March march III
| WEDNESDAY Wednesday wednesday MARCH March march III
| WEDNESDAY Wednesday wednesday MARCH March march III
| WEDNESDAY Wednesday wednesday MARCH March march III
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| MONDAY Monday monday FEBRUARY February february II
| TUESDAY Tuesday tuesday JUNE June june VI
| MONDAY Monday monday FEBRUARY February february II
| TUESDAY Tuesday tuesday FEBRUARY February february II
| WEDNESDAY Wednesday wednesday FEBRUARY February february II
| THURSDAY Thursday thursday FEBRUARY February february II
| FRIDAY Friday friday FEBRUARY February february II
| SATURDAY Saturday saturday FEBRUARY February february II
| SUNDAY Sunday sunday FEBRUARY February february II
| TUESDAY Tuesday tuesday FEBRUARY February february II
| SATURDAY Saturday saturday FEBRUARY February february II
| THURSDAY Thursday thursday FEBRUARY February february II
| TUESDAY Tuesday tuesday FEBRUARY February february II
| SATURDAY Saturday saturday FEBRUARY February february II
| THURSDAY Thursday thursday FEBRUARY February february II
| TUESDAY Tuesday tuesday FEBRUARY February february II
| SUNDAY Sunday sunday FEBRUARY February february II
| SATURDAY Saturday saturday FEBRUARY February february II
| WEDNESDAY Wednesday wednesday FEBRUARY February february II
| THURSDAY Thursday thursday FEBRUARY February february II
| FRIDAY Friday friday MARCH March march III
| MONDAY Monday monday DECEMBER December december XII
| TUESDAY Tuesday tuesday DECEMBER December december XII
| WEDNESDAY Wednesday wednesday JANUARY January january I
| FRIDAY Friday friday FEBRUARY February february II
| SATURDAY Saturday saturday MARCH March march III
| TUESDAY Tuesday tuesday DECEMBER December december XII
| WEDNESDAY Wednesday wednesday DECEMBER December december XII
| FRIDAY Friday friday DECEMBER December december XII
| SATURDAY Saturday saturday JANUARY January january I
| SUNDAY Sunday sunday DECEMBER December december XII
| MONDAY Monday monday JANUARY January january I
(64 rows)
SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J')
FROM TIMESTAMPTZ_TBL;
to_char_3 | to_char
-----------+-------------------------------------------------
|
|
| 1,969 1969 969 69 9 20 4 12 53 365 31 4 2440587
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 01 01 002 02 5 2450451
| 1,997 1997 997 97 7 20 1 01 01 002 02 5 2450451
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 2 06 23 161 10 3 2450610
| 2,001 2001 001 01 1 21 3 09 38 265 22 7 2452175
| 2,000 2000 000 00 0 21 1 03 11 075 15 4 2451619
| 2,000 2000 000 00 0 21 1 03 11 075 15 4 2451619
| 2,000 2000 000 00 0 21 1 03 11 075 15 4 2451619
| 2,000 2000 000 00 0 21 1 03 11 075 15 4 2451619
| 2,000 2000 000 00 0 21 1 03 11 075 15 4 2451619
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 2 06 23 161 10 3 2450610
| 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490
| 1,997 1997 997 97 7 20 1 02 06 042 11 3 2450491
| 1,997 1997 997 97 7 20 1 02 07 043 12 4 2450492
| 1,997 1997 997 97 7 20 1 02 07 044 13 5 2450493
| 1,997 1997 997 97 7 20 1 02 07 045 14 6 2450494
| 1,997 1997 997 97 7 20 1 02 07 046 15 7 2450495
| 1,997 1997 997 97 7 20 1 02 07 047 16 1 2450496
| 0,097 0097 097 97 7 01 1 02 07 047 16 3 1686042
| 0,097 0097 097 97 7 01 1 02 07 047 16 7 1756536
| 0,597 0597 597 97 7 06 1 02 07 047 16 5 1939157
| 1,097 1097 097 97 7 11 1 02 07 047 16 3 2121778
| 1,697 1697 697 97 7 17 1 02 07 047 16 7 2340924
| 1,797 1797 797 97 7 18 1 02 07 047 16 5 2377448
| 1,897 1897 897 97 7 19 1 02 07 047 16 3 2413972
| 1,997 1997 997 97 7 20 1 02 07 047 16 1 2450496
| 2,097 2097 097 97 7 21 1 02 07 047 16 7 2487021
| 1,996 1996 996 96 6 20 1 02 09 059 28 4 2450142
| 1,996 1996 996 96 6 20 1 02 09 060 29 5 2450143
| 1,996 1996 996 96 6 20 1 03 09 061 01 6 2450144
| 1,996 1996 996 96 6 20 4 12 53 365 30 2 2450448
| 1,996 1996 996 96 6 20 4 12 53 366 31 3 2450449
| 1,997 1997 997 97 7 20 1 01 01 001 01 4 2450450
| 1,997 1997 997 97 7 20 1 02 09 059 28 6 2450508
| 1,997 1997 997 97 7 20 1 03 09 060 01 7 2450509
| 1,997 1997 997 97 7 20 4 12 52 364 30 3 2450813
| 1,997 1997 997 97 7 20 4 12 53 365 31 4 2450814
| 1,999 1999 999 99 9 20 4 12 53 365 31 6 2451544
| 2,000 2000 000 00 0 21 1 01 01 001 01 7 2451545
| 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910
| 2,001 2001 001 01 1 21 1 01 01 001 01 2 2451911
(64 rows)
SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ')
FROM TIMESTAMPTZ_TBL;
to_char_4 | to_char
-----------+-------------------------------------------------
|
|
| 1,969 1969 969 69 9 20 4 12 53 365 31 4 2440587
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 1 1 2 2 5 2450451
| 1,997 1997 997 97 7 20 1 1 1 2 2 5 2450451
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 2 6 23 161 10 3 2450610
| 2,001 2001 001 01 1 21 3 9 38 265 22 7 2452175
| 2,000 2000 000 00 0 21 1 3 11 75 15 4 2451619
| 2,000 2000 000 00 0 21 1 3 11 75 15 4 2451619
| 2,000 2000 000 00 0 21 1 3 11 75 15 4 2451619
| 2,000 2000 000 00 0 21 1 3 11 75 15 4 2451619
| 2,000 2000 000 00 0 21 1 3 11 75 15 4 2451619
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 2 6 23 161 10 3 2450610
| 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490
| 1,997 1997 997 97 7 20 1 2 6 42 11 3 2450491
| 1,997 1997 997 97 7 20 1 2 7 43 12 4 2450492
| 1,997 1997 997 97 7 20 1 2 7 44 13 5 2450493
| 1,997 1997 997 97 7 20 1 2 7 45 14 6 2450494
| 1,997 1997 997 97 7 20 1 2 7 46 15 7 2450495
| 1,997 1997 997 97 7 20 1 2 7 47 16 1 2450496
| 0,097 97 097 97 7 1 1 2 7 47 16 3 1686042
| 0,097 97 097 97 7 1 1 2 7 47 16 7 1756536
| 0,597 597 597 97 7 6 1 2 7 47 16 5 1939157
| 1,097 1097 097 97 7 11 1 2 7 47 16 3 2121778
| 1,697 1697 697 97 7 17 1 2 7 47 16 7 2340924
| 1,797 1797 797 97 7 18 1 2 7 47 16 5 2377448
| 1,897 1897 897 97 7 19 1 2 7 47 16 3 2413972
| 1,997 1997 997 97 7 20 1 2 7 47 16 1 2450496
| 2,097 2097 097 97 7 21 1 2 7 47 16 7 2487021
| 1,996 1996 996 96 6 20 1 2 9 59 28 4 2450142
| 1,996 1996 996 96 6 20 1 2 9 60 29 5 2450143
| 1,996 1996 996 96 6 20 1 3 9 61 1 6 2450144
| 1,996 1996 996 96 6 20 4 12 53 365 30 2 2450448
| 1,996 1996 996 96 6 20 4 12 53 366 31 3 2450449
| 1,997 1997 997 97 7 20 1 1 1 1 1 4 2450450
| 1,997 1997 997 97 7 20 1 2 9 59 28 6 2450508
| 1,997 1997 997 97 7 20 1 3 9 60 1 7 2450509
| 1,997 1997 997 97 7 20 4 12 52 364 30 3 2450813
| 1,997 1997 997 97 7 20 4 12 53 365 31 4 2450814
| 1,999 1999 999 99 9 20 4 12 53 365 31 6 2451544
| 2,000 2000 000 00 0 21 1 1 1 1 1 7 2451545
| 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910
| 2,001 2001 001 01 1 21 1 1 1 1 1 2 2451911
(64 rows)
SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS')
FROM TIMESTAMPTZ_TBL;
to_char_5 | to_char
-----------+----------------------
|
|
| 04 04 16 00 00 57600
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 12 12 00 00 00 0
| 03 03 03 04 05 11045
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 11 11 11 19 20 40760
| 08 08 08 14 01 29641
| 04 04 04 14 02 15242
| 02 02 02 14 03 8043
| 03 03 03 14 04 11644
| 01 01 01 14 05 4445
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 00 63120
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 09 09 09 32 01 34321
| 09 09 09 32 01 34321
| 09 09 09 32 01 34321
| 06 06 18 32 01 66721
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
| 05 05 17 32 01 63121
(64 rows)
SELECT '' AS to_char_6, to_char(d1, '"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""')
FROM TIMESTAMPTZ_TBL;
to_char_6 | to_char
-----------+-------------------------------------------------
|
|
| HH:MI:SS is 04:00:00 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 12:00:00 "text between quote marks"
| HH:MI:SS is 03:04:05 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 11:19:20 "text between quote marks"
| HH:MI:SS is 08:14:01 "text between quote marks"
| HH:MI:SS is 04:14:02 "text between quote marks"
| HH:MI:SS is 02:14:03 "text between quote marks"
| HH:MI:SS is 03:14:04 "text between quote marks"
| HH:MI:SS is 01:14:05 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:00 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 09:32:01 "text between quote marks"
| HH:MI:SS is 09:32:01 "text between quote marks"
| HH:MI:SS is 09:32:01 "text between quote marks"
| HH:MI:SS is 06:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
| HH:MI:SS is 05:32:01 "text between quote marks"
(64 rows)
SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS')
FROM TIMESTAMPTZ_TBL;
to_char_7 | to_char
-----------+------------------------
|
|
| 16--text--00--text--00
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 00--text--00--text--00
| 03--text--04--text--05
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 11--text--19--text--20
| 08--text--14--text--01
| 04--text--14--text--02
| 02--text--14--text--03
| 03--text--14--text--04
| 01--text--14--text--05
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--00
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 09--text--32--text--01
| 09--text--32--text--01
| 09--text--32--text--01
| 18--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
| 17--text--32--text--01
(64 rows)
SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth')
FROM TIMESTAMPTZ_TBL;
to_char_8 | to_char
-----------+-------------------------
|
|
| 1969TH 1969th 2440587th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450451st
| 1997TH 1997th 2450451st
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450610th
| 2001ST 2001st 2452175th
| 2000TH 2000th 2451619th
| 2000TH 2000th 2451619th
| 2000TH 2000th 2451619th
| 2000TH 2000th 2451619th
| 2000TH 2000th 2451619th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450610th
| 1997TH 1997th 2450490th
| 1997TH 1997th 2450491st
| 1997TH 1997th 2450492nd
| 1997TH 1997th 2450493rd
| 1997TH 1997th 2450494th
| 1997TH 1997th 2450495th
| 1997TH 1997th 2450496th
| 0097TH 0097th 1686042nd
| 0097TH 0097th 1756536th
| 0597TH 0597th 1939157th
| 1097TH 1097th 2121778th
| 1697TH 1697th 2340924th
| 1797TH 1797th 2377448th
| 1897TH 1897th 2413972nd
| 1997TH 1997th 2450496th
| 2097TH 2097th 2487021st
| 1996TH 1996th 2450142nd
| 1996TH 1996th 2450143rd
| 1996TH 1996th 2450144th
| 1996TH 1996th 2450448th
| 1996TH 1996th 2450449th
| 1997TH 1997th 2450450th
| 1997TH 1997th 2450508th
| 1997TH 1997th 2450509th
| 1997TH 1997th 2450813th
| 1997TH 1997th 2450814th
| 1999TH 1999th 2451544th
| 2000TH 2000th 2451545th
| 2000TH 2000th 2451910th
| 2001ST 2001st 2451911th
(64 rows)
SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm')
FROM TIMESTAMPTZ_TBL;
to_char_9 | to_char
-----------+---------------------------------------------------------------------
|
|
| 1969 A.D. 1969 a.d. 1969 ad 04:00:00 P.M. 04:00:00 p.m. 04:00:00 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 12:00:00 A.M. 12:00:00 a.m. 12:00:00 am
| 1997 A.D. 1997 a.d. 1997 ad 03:04:05 A.M. 03:04:05 a.m. 03:04:05 am
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 2001 A.D. 2001 a.d. 2001 ad 11:19:20 A.M. 11:19:20 a.m. 11:19:20 am
| 2000 A.D. 2000 a.d. 2000 ad 08:14:01 A.M. 08:14:01 a.m. 08:14:01 am
| 2000 A.D. 2000 a.d. 2000 ad 04:14:02 A.M. 04:14:02 a.m. 04:14:02 am
| 2000 A.D. 2000 a.d. 2000 ad 02:14:03 A.M. 02:14:03 a.m. 02:14:03 am
| 2000 A.D. 2000 a.d. 2000 ad 03:14:04 A.M. 03:14:04 a.m. 03:14:04 am
| 2000 A.D. 2000 a.d. 2000 ad 01:14:05 A.M. 01:14:05 a.m. 01:14:05 am
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:00 P.M. 05:32:00 p.m. 05:32:00 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 09:32:01 A.M. 09:32:01 a.m. 09:32:01 am
| 1997 A.D. 1997 a.d. 1997 ad 09:32:01 A.M. 09:32:01 a.m. 09:32:01 am
| 1997 A.D. 1997 a.d. 1997 ad 09:32:01 A.M. 09:32:01 a.m. 09:32:01 am
| 1997 A.D. 1997 a.d. 1997 ad 06:32:01 P.M. 06:32:01 p.m. 06:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 0097 B.C. 0097 b.c. 0097 bc 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 0097 A.D. 0097 a.d. 0097 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 0597 A.D. 0597 a.d. 0597 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1097 A.D. 1097 a.d. 1097 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1697 A.D. 1697 a.d. 1697 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1797 A.D. 1797 a.d. 1797 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1897 A.D. 1897 a.d. 1897 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 2097 A.D. 2097 a.d. 2097 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1996 A.D. 1996 a.d. 1996 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 1999 A.D. 1999 a.d. 1999 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
| 2001 A.D. 2001 a.d. 2001 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm
(64 rows)
-- TO_TIMESTAMP()
SELECT '' AS to_timestamp_1, to_timestamp('0097/Feb/16 --> 08:14:30', 'YYYY/Mon/DD --> HH:MI:SS');
to_timestamp_1 | to_timestamp
----------------+--------------------------
| Sat Feb 16 08:14:30 0097
(1 row)
SELECT '' AS to_timestamp_2, to_timestamp('97/2/16 8:14:30', 'FMYYYY/FMMM/FMDD FMHH:FMMI:FMSS');
to_timestamp_2 | to_timestamp
----------------+--------------------------
| Sat Feb 16 08:14:30 0097
(1 row)
SELECT '' AS to_timestamp_3, to_timestamp('1985 January 12', 'YYYY FMMonth DD');
to_timestamp_3 | to_timestamp
----------------+------------------------------
| Sat Jan 12 00:00:00 1985 PST
(1 row)
SELECT '' AS to_timestamp_4, to_timestamp('My birthday-> Year: 1976, Month: May, Day: 16',
'"My birthday-> Year" YYYY, "Month:" FMMonth, "Day:" DD');
to_timestamp_4 | to_timestamp
----------------+------------------------------
| Sun May 16 00:00:00 1976 PDT
(1 row)
SELECT '' AS to_timestamp_5, to_timestamp('1,582nd VIII 21', 'Y,YYYth FMRM DD');
to_timestamp_5 | to_timestamp
----------------+--------------------------
| Sat Aug 21 00:00:00 1582
(1 row)
SELECT '' AS to_timestamp_6, to_timestamp('15 "text between quote marks" 98 54 45',
'HH "\\text between quote marks\\"" YY MI SS');
to_timestamp_6 | to_timestamp
----------------+------------------------------
| Thu Jan 01 15:54:45 1998 PST
(1 row)
SELECT '' AS to_timestamp_7, to_timestamp('05121445482000', 'MMDDHHMISSYYYY');
to_timestamp_7 | to_timestamp
----------------+------------------------------
| Fri May 12 14:45:48 2000 PDT
(1 row)
SELECT '' AS to_timestamp_8, to_timestamp('2000January09Sunday', 'YYYYFMMonthDDFMDay');
to_timestamp_8 | to_timestamp
----------------+------------------------------
| Sun Jan 09 00:00:00 2000 PST
(1 row)
SELECT '' AS to_timestamp_9, to_timestamp('97/Feb/16', 'YYMonDD');
ERROR: to_timestamp(): bad value for MON/Mon/mon
SELECT '' AS to_timestamp_10, to_timestamp('19971116', 'YYYYMMDD');
to_timestamp_10 | to_timestamp
-----------------+------------------------------
| Sun Nov 16 00:00:00 1997 PST
(1 row)
SELECT '' AS to_timestamp_11, to_timestamp('20000-1116', 'YYYY-MMDD');
to_timestamp_11 | to_timestamp
-----------------+---------------------------
| Thu Nov 16 00:00:00 20000
(1 row)
SELECT '' AS to_timestamp_12, to_timestamp('9-1116', 'Y-MMDD');
to_timestamp_12 | to_timestamp
-----------------+------------------------------
| Mon Nov 16 00:00:00 2009 PST
(1 row)
SELECT '' AS to_timestamp_13, to_timestamp('95-1116', 'YY-MMDD');
to_timestamp_13 | to_timestamp
-----------------+------------------------------
| Thu Nov 16 00:00:00 1995 PST
(1 row)
SELECT '' AS to_timestamp_14, to_timestamp('995-1116', 'YYY-MMDD');
to_timestamp_14 | to_timestamp
-----------------+------------------------------
| Thu Nov 16 00:00:00 1995 PST
(1 row)
SET DateStyle TO DEFAULT;
--
-- TIMETZ
--
CREATE TABLE TIMETZ_TBL (f1 time with time zone);
INSERT INTO TIMETZ_TBL VALUES ('00:01 PDT');
INSERT INTO TIMETZ_TBL VALUES ('01:00 PDT');
INSERT INTO TIMETZ_TBL VALUES ('02:03 PDT');
INSERT INTO TIMETZ_TBL VALUES ('07:07 PST');
INSERT INTO TIMETZ_TBL VALUES ('08:08 EDT');
INSERT INTO TIMETZ_TBL VALUES ('11:59 PDT');
INSERT INTO TIMETZ_TBL VALUES ('12:00 PDT');
INSERT INTO TIMETZ_TBL VALUES ('12:01 PDT');
INSERT INTO TIMETZ_TBL VALUES ('23:59 PDT');
INSERT INTO TIMETZ_TBL VALUES ('11:59:59.99 PM PDT');
SELECT f1 AS "Time TZ" FROM TIMETZ_TBL;
Time TZ
-------------
00:01:00-07
01:00:00-07
02:03:00-07
07:07:00-08
08:08:00-04
11:59:00-07
12:00:00-07
12:01:00-07
23:59:00-07
23:59:59-07
(10 rows)
SELECT f1 AS "Three" FROM TIMETZ_TBL WHERE f1 < '05:06:07';
Three
-------------
00:01:00-07
01:00:00-07
02:03:00-07
(3 rows)
SELECT f1 AS "Seven" FROM TIMETZ_TBL WHERE f1 > '05:06:07';
Seven
-------------
07:07:00-08
08:08:00-04
11:59:00-07
12:00:00-07
12:01:00-07
23:59:00-07
23:59:59-07
(7 rows)
SELECT f1 AS "None" FROM TIMETZ_TBL WHERE f1 < '00:00';
None
------
(0 rows)
SELECT f1 AS "Ten" FROM TIMETZ_TBL WHERE f1 >= '00:00';
Ten
-------------
00:01:00-07
01:00:00-07
02:03:00-07
07:07:00-08
08:08:00-04
11:59:00-07
12:00:00-07
12:01:00-07
23:59:00-07
23:59:59-07
(10 rows)
--
-- TIME simple math
--
-- We now make a distinction between time and intervals,
-- and adding two times together makes no sense at all.
-- Leave in one query to show that it is rejected,
-- and do the rest of the testing in horology.sql
-- where we do mixed-type arithmetic. - thomas 2000-12-02
SELECT f1 + time with time zone '00:01' AS "Illegal" FROM TIMETZ_TBL;
ERROR: Unable to identify an operator '+' for types 'time with time zone' and 'time with time zone'
You will have to retype this query using an explicit cast
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
-- TINTERVAL -- TINTERVAL
-- --
CREATE TABLE TINTERVAL_TBL (f1 tinterval); CREATE TABLE TINTERVAL_TBL (f1 tinterval);
-- Should accept any abstime,
-- so do not bother with extensive testing of values
INSERT INTO TINTERVAL_TBL (f1) INSERT INTO TINTERVAL_TBL (f1)
VALUES ('["-infinity" "infinity"]'); VALUES ('["-infinity" "infinity"]');
INSERT INTO TINTERVAL_TBL (f1) INSERT INTO TINTERVAL_TBL (f1)
...@@ -11,7 +13,7 @@ INSERT INTO TINTERVAL_TBL (f1) ...@@ -11,7 +13,7 @@ INSERT INTO TINTERVAL_TBL (f1)
INSERT INTO TINTERVAL_TBL (f1) INSERT INTO TINTERVAL_TBL (f1)
VALUES ('["epoch" "Mon May 1 00:30:30 1995"]'); VALUES ('["epoch" "Mon May 1 00:30:30 1995"]');
INSERT INTO TINTERVAL_TBL (f1) INSERT INTO TINTERVAL_TBL (f1)
VALUES ('["Feb 15 1990 12:15:03" "current"]'); VALUES ('["Feb 15 1990 12:15:03" "2001-09-23 11:12:13"]');
-- badly formatted tintervals -- badly formatted tintervals
INSERT INTO TINTERVAL_TBL (f1) INSERT INTO TINTERVAL_TBL (f1)
VALUES ('["bad time specifications" ""]'); VALUES ('["bad time specifications" ""]');
...@@ -26,8 +28,8 @@ SELECT '' AS five, TINTERVAL_TBL.*; ...@@ -26,8 +28,8 @@ SELECT '' AS five, TINTERVAL_TBL.*;
| ["-infinity" "infinity"] | ["-infinity" "infinity"]
| ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
| ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
| ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
| ["Thu Feb 15 12:15:03 1990 PST" "current"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
(5 rows) (5 rows)
-- length == -- length ==
...@@ -46,8 +48,8 @@ SELECT '' AS three, t.* ...@@ -46,8 +48,8 @@ SELECT '' AS three, t.*
three | f1 three | f1
-------+----------------------------------------------------------------- -------+-----------------------------------------------------------------
| ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
| ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
| ["Thu Feb 15 12:15:03 1990 PST" "current"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
(3 rows) (3 rows)
-- length < -- length <
...@@ -74,8 +76,8 @@ SELECT '' AS three, t.* ...@@ -74,8 +76,8 @@ SELECT '' AS three, t.*
three | f1 three | f1
-------+----------------------------------------------------------------- -------+-----------------------------------------------------------------
| ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
| ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
| ["Thu Feb 15 12:15:03 1990 PST" "current"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
(3 rows) (3 rows)
-- length >= -- length >=
...@@ -85,8 +87,8 @@ SELECT '' AS three, t.* ...@@ -85,8 +87,8 @@ SELECT '' AS three, t.*
three | f1 three | f1
-------+----------------------------------------------------------------- -------+-----------------------------------------------------------------
| ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
| ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
| ["Thu Feb 15 12:15:03 1990 PST" "current"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
(3 rows) (3 rows)
-- overlaps -- overlaps
...@@ -98,7 +100,7 @@ SELECT '' AS three, t1.* ...@@ -98,7 +100,7 @@ SELECT '' AS three, t1.*
-------+----------------------------------------------------------------- -------+-----------------------------------------------------------------
| ["-infinity" "infinity"] | ["-infinity" "infinity"]
| ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
| ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
(3 rows) (3 rows)
SET geqo TO 'off'; SET geqo TO 'off';
...@@ -111,8 +113,8 @@ SELECT '' AS five, t1.f1, t2.f1 ...@@ -111,8 +113,8 @@ SELECT '' AS five, t1.f1, t2.f1
------+-----------------------------------------------------------------+----------------------------------------------------------------- ------+-----------------------------------------------------------------+-----------------------------------------------------------------
| ["-infinity" "infinity"] | ["-infinity" "infinity"] | ["-infinity" "infinity"] | ["-infinity" "infinity"]
| ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
| ["Thu Feb 15 12:15:03 1990 PST" "current"] | ["Thu Feb 15 12:15:03 1990 PST" "current"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
| ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
| ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
(5 rows) (5 rows)
...@@ -123,19 +125,19 @@ SELECT '' AS fourteen, t1.f1 AS interval1, t2.f1 AS interval2 ...@@ -123,19 +125,19 @@ SELECT '' AS fourteen, t1.f1 AS interval1, t2.f1 AS interval2
fourteen | interval1 | interval2 fourteen | interval1 | interval2
----------+-----------------------------------------------------------------+----------------------------------------------------------------- ----------+-----------------------------------------------------------------+-----------------------------------------------------------------
| ["-infinity" "infinity"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["-infinity" "infinity"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
| ["-infinity" "infinity"] | ["Thu Feb 15 12:15:03 1990 PST" "current"] | ["-infinity" "infinity"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
| ["-infinity" "infinity"] | ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["-infinity" "infinity"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
| ["-infinity" "infinity"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["-infinity" "infinity"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
| ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["-infinity" "infinity"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["-infinity" "infinity"]
| ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
| ["Thu Feb 15 12:15:03 1990 PST" "current"] | ["-infinity" "infinity"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"] | ["-infinity" "infinity"]
| ["Thu Feb 15 12:15:03 1990 PST" "current"] | ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
| ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["-infinity" "infinity"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"] | ["-infinity" "infinity"]
| ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
| ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Thu Feb 15 12:15:03 1990 PST" "current"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
| ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
| ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["-infinity" "infinity"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["-infinity" "infinity"]
| ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
(14 rows) (14 rows)
-- contains -- contains
...@@ -147,7 +149,7 @@ SELECT '' AS five, t1.f1 ...@@ -147,7 +149,7 @@ SELECT '' AS five, t1.f1
five | f1 five | f1
------+----------------------------------------------------------------- ------+-----------------------------------------------------------------
| ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
| ["Thu Feb 15 12:15:03 1990 PST" "current"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
| ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
(3 rows) (3 rows)
...@@ -162,7 +164,7 @@ SELECT '' AS three, t1.f1 ...@@ -162,7 +164,7 @@ SELECT '' AS three, t1.f1
-------+----------------------------------------------------------------- -------+-----------------------------------------------------------------
| ["-infinity" "infinity"] | ["-infinity" "infinity"]
| ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
| ["epoch" "Mon May 01 00:30:30 1995 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
(3 rows) (3 rows)
RESET geqo; RESET geqo;
...@@ -650,11 +650,13 @@ SELECT user_relns() AS user_relns ...@@ -650,11 +650,13 @@ SELECT user_relns() AS user_relns
text_tbl text_tbl
time_tbl time_tbl
timestamp_tbl timestamp_tbl
timestamptz_tbl
timetz_tbl
tinterval_tbl tinterval_tbl
toyemp toyemp
varchar_tbl varchar_tbl
xacttest xacttest
(91 rows) (93 rows)
--SELECT name(equipment(hobby_construct(text 'skywalking', text 'mer'))) AS equip_name; --SELECT name(equipment(hobby_construct(text 'skywalking', text 'mer'))) AS equip_name;
SELECT hobbies_by_name('basketball'); SELECT hobbies_by_name('basketball');
......
...@@ -11,11 +11,11 @@ test: numerology ...@@ -11,11 +11,11 @@ test: numerology
# ---------- # ----------
# The second group of parallel test # The second group of parallel test
# ---------- # ----------
test: point lseg box path polygon circle date time timestamp interval abstime reltime tinterval inet comments oidjoins type_sanity opr_sanity test: point lseg box path polygon circle date time timestamp timestamptz interval abstime reltime tinterval inet comments oidjoins type_sanity opr_sanity
# Depends on point, lseg, box, path, polygon and circle # Depends on point, lseg, box, path, polygon and circle
test: geometry test: geometry
# Depends on interval, timestamp, reltime and abstime # Depends on interval, timestamp, timestamptz, reltime and abstime
test: horology test: horology
# ---------- # ----------
......
# $Header: /cvsroot/pgsql/src/test/regress/serial_schedule,v 1.6 2001/06/12 16:34:27 momjian Exp $ # $Header: /cvsroot/pgsql/src/test/regress/serial_schedule,v 1.7 2001/09/28 07:59:38 thomas Exp $
# This should probably be in an order similar to parallel_schedule. # This should probably be in an order similar to parallel_schedule.
test: boolean test: boolean
test: char test: char
...@@ -23,7 +23,9 @@ test: polygon ...@@ -23,7 +23,9 @@ test: polygon
test: circle test: circle
test: date test: date
test: time test: time
test: timetz
test: timestamp test: timestamp
test: timestamptz
test: interval test: interval
test: abstime test: abstime
test: reltime test: reltime
......
...@@ -12,31 +12,27 @@ ...@@ -12,31 +12,27 @@
CREATE TABLE ABSTIME_TBL (f1 abstime); CREATE TABLE ABSTIME_TBL (f1 abstime);
INSERT INTO ABSTIME_TBL (f1) VALUES ('Jan 14, 1973 03:14:21'); BEGIN;
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'current');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'now');
SELECT count(*) AS two FROM ABSTIME_TBL WHERE f1 = 'now' ;
END;
-- was INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'now'): DELETE FROM ABSTIME_TBL;
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'Mon May 1 00:30:30 1995');
INSERT INTO ABSTIME_TBL (f1) VALUES ('Jan 14, 1973 03:14:21');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'Mon May 1 00:30:30 1995');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'epoch'); INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'epoch');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'current');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'infinity'); INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'infinity');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime '-infinity'); INSERT INTO ABSTIME_TBL (f1) VALUES (abstime '-infinity');
INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'May 10, 1947 23:59:12'); INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'May 10, 1947 23:59:12');
-- what happens if we specify slightly misformatted abstime? -- what happens if we specify slightly misformatted abstime?
INSERT INTO ABSTIME_TBL (f1) VALUES ('Feb 35, 1946 10:00:00'); INSERT INTO ABSTIME_TBL (f1) VALUES ('Feb 35, 1946 10:00:00');
INSERT INTO ABSTIME_TBL (f1) VALUES ('Feb 28, 1984 25:08:10'); INSERT INTO ABSTIME_TBL (f1) VALUES ('Feb 28, 1984 25:08:10');
-- badly formatted abstimes: these should result in invalid abstimes -- badly formatted abstimes: these should result in invalid abstimes
INSERT INTO ABSTIME_TBL (f1) VALUES ('bad date format'); INSERT INTO ABSTIME_TBL (f1) VALUES ('bad date format');
INSERT INTO ABSTIME_TBL (f1) VALUES ('Jun 10, 1843'); INSERT INTO ABSTIME_TBL (f1) VALUES ('Jun 10, 1843');
-- test abstime operators -- test abstime operators
...@@ -52,9 +48,6 @@ SELECT '' AS six, ABSTIME_TBL.* ...@@ -52,9 +48,6 @@ SELECT '' AS six, ABSTIME_TBL.*
SELECT '' AS six, ABSTIME_TBL.* SELECT '' AS six, ABSTIME_TBL.*
WHERE abstime 'May 10, 1947 23:59:12' <> ABSTIME_TBL.f1; WHERE abstime 'May 10, 1947 23:59:12' <> ABSTIME_TBL.f1;
SELECT '' AS one, ABSTIME_TBL.*
WHERE abstime 'current' = ABSTIME_TBL.f1;
SELECT '' AS three, ABSTIME_TBL.* SELECT '' AS three, ABSTIME_TBL.*
WHERE abstime 'epoch' >= ABSTIME_TBL.f1; WHERE abstime 'epoch' >= ABSTIME_TBL.f1;
...@@ -70,5 +63,5 @@ SELECT '' AS four, f1 AS abstime, ...@@ -70,5 +63,5 @@ SELECT '' AS four, f1 AS abstime,
date_part('day',f1) AS day, date_part('hour', f1) AS hour, date_part('day',f1) AS day, date_part('hour', f1) AS hour,
date_part('minute', f1) AS minute, date_part('second', f1) AS second date_part('minute', f1) AS minute, date_part('second', f1) AS second
FROM ABSTIME_TBL FROM ABSTIME_TBL
WHERE isfinite(f1) and f1 <> abstime 'current' WHERE isfinite(f1)
ORDER BY abstime; ORDER BY abstime;
-- --
-- HOROLOGY -- HOROLOGY
-- --
-- needed so tests pass even in Australia
SET australian_timezones = 'off';
SET DateStyle = 'Postgres,US';
-- --
-- date, time arithmetic -- date, time arithmetic
-- --
-- needed so tests pass
SET australian_timezones = 'off';
SELECT date '1981-02-03' + time '04:05:06' AS "Date + Time"; SELECT date '1981-02-03' + time '04:05:06' AS "Date + Time";
SELECT date '1991-02-03' + time with time zone '04:05:06 PST' AS "Date + Time PST"; SELECT date '1991-02-03' + time with time zone '04:05:06 PST' AS "Date + Time PST";
SELECT date '2001-02-03' + time with time zone '04:05:06 UTC' AS "Date + Time UTC"; SELECT date '2001-02-03' + time with time zone '04:05:06 UTC' AS "Date + Time UTC";
SELECT date '1991-02-03' + interval '2 years' AS "Add Two Years"; SELECT date '1991-02-03' + interval '2 years' AS "Add Two Years";
SELECT date '2001-12-13' - interval '2 years' AS "Subtract Two Years"; SELECT date '2001-12-13' - interval '2 years' AS "Subtract Two Years";
-- subtract time from date should not make sense; use interval instead
SELECT date '1991-02-03' - time '04:05:06' AS "Subtract Time"; SELECT date '1991-02-03' - time '04:05:06' AS "Subtract Time";
SELECT date '1991-02-03' - time with time zone '04:05:06 UTC' AS "Subtract Time UTC"; SELECT date '1991-02-03' - time with time zone '04:05:06 UTC' AS "Subtract Time UTC";
-- --
-- timestamp, interval arithmetic -- timestamp, interval arithmetic
-- --
SELECT timestamp '1996-03-01' - interval '1 second' AS "Feb 29"; SELECT timestamp without time zone '1996-03-01' - interval '1 second' AS "Feb 29";
SELECT timestamp without time zone '1999-03-01' - interval '1 second' AS "Feb 28";
SELECT timestamp '1999-03-01' - interval '1 second' AS "Feb 28"; SELECT timestamp without time zone '2000-03-01' - interval '1 second' AS "Feb 29";
SELECT timestamp without time zone '1999-12-01' + interval '1 month - 1 second' AS "Dec 31";
SELECT timestamp '2000-03-01' - interval '1 second' AS "Feb 29";
-- Shorthand values
SELECT timestamp '1999-12-01' + interval '1 month - 1 second' AS "Dec 31"; -- Not directly usable for regression testing since these are not constants.
-- So, just try to test parser and hope for the best - thomas 97/04/26
SELECT (timestamp without time zone 'today' = (timestamp without time zone 'yesterday' + interval '1 day')) as "True";
SELECT (timestamp without time zone 'today' = (timestamp without time zone 'tomorrow' - interval '1 day')) as "True";
SELECT (timestamp without time zone 'tomorrow' = (timestamp without time zone 'yesterday' + interval '2 days')) as "True";
SELECT (timestamp without time zone 'tomorrow' > 'now') as "True";
SELECT timestamp(date '1994-01-01', time '11:00') AS "Jan_01_1994_11am";
SELECT timestamp(date '1994-01-01', time '10:00') AS "Jan_01_1994_10am";
SELECT timestamp(date '1994-01-01', time '11:00-5') AS "Jan_01_1994_8am";
SELECT timestamp(date '1994-01-01', time with time zone '11:00-5') AS "Jan_01_1994_11am";
SELECT '' AS "64", d1 + interval '1 year' AS one_year FROM TIMESTAMP_TBL;
SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL;
SELECT timestamp with time zone '1996-03-01' - interval '1 second' AS "Feb 29";
SELECT timestamp with time zone '1999-03-01' - interval '1 second' AS "Feb 28";
SELECT timestamp with time zone '2000-03-01' - interval '1 second' AS "Feb 29";
SELECT timestamp with time zone '1999-12-01' + interval '1 month - 1 second' AS "Dec 31";
SELECT (timestamp with time zone 'today' = (timestamp with time zone 'yesterday' + interval '1 day')) as "True";
SELECT (timestamp with time zone 'today' = (timestamp with time zone 'tomorrow' - interval '1 day')) as "True";
SELECT (timestamp with time zone 'tomorrow' = (timestamp with time zone 'yesterday' + interval '2 days')) as "True";
SELECT (timestamp with time zone 'tomorrow' > 'now') as "True";
SELECT timestamptz(date '1994-01-01', time '11:00') AS "Jan_01_1994_10am";
SELECT timestamptz(date '1994-01-01', time '10:00') AS "Jan_01_1994_9am";
SELECT timestamptz(date '1994-01-01', time with time zone '11:00-8') AS "Jan_01_1994_11am";
SELECT timestamptz(date '1994-01-01', time with time zone '10:00-8') AS "Jan_01_1994_10am";
SELECT timestamptz(date '1994-01-01', time with time zone '11:00-5') AS "Jan_01_1994_8am";
SELECT '' AS "64", d1 + interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
-- --
-- time, interval arithmetic -- time, interval arithmetic
-- --
SELECT CAST(time '01:02' AS interval) AS "+01:02"; SELECT CAST(time '01:02' AS interval) AS "+01:02";
SELECT CAST(interval '02:03' AS time) AS "02:03:00"; SELECT CAST(interval '02:03' AS time) AS "02:03:00";
SELECT time '01:30' + interval '02:01' AS "03:31:00"; SELECT time '01:30' + interval '02:01' AS "03:31:00";
SELECT time '01:30' - interval '02:01' AS "23:29:00"; SELECT time '01:30' - interval '02:01' AS "23:29:00";
SELECT time '02:30' + interval '36:01' AS "14:31:00"; SELECT time '02:30' + interval '36:01' AS "14:31:00";
SELECT time '03:30' + interval '1 month 04:01' AS "07:31:00"; SELECT time '03:30' + interval '1 month 04:01' AS "07:31:00";
SELECT interval '04:30' - time '01:02' AS "20:32:00";
SELECT interval '04:30' - time '01:02' AS "+03:28";
SELECT CAST(time with time zone '01:02-08' AS interval) AS "+00:01"; SELECT CAST(time with time zone '01:02-08' AS interval) AS "+00:01";
SELECT CAST(interval '02:03' AS time with time zone) AS "02:03:00-08"; SELECT CAST(interval '02:03' AS time with time zone) AS "02:03:00-08";
SELECT time with time zone '01:30-08' - interval '02:01' AS "23:29:00-08"; SELECT time with time zone '01:30-08' - interval '02:01' AS "23:29:00-08";
SELECT time with time zone '02:30-08' + interval '36:01' AS "14:31:00-08"; SELECT time with time zone '02:30-08' + interval '36:01' AS "14:31:00-08";
-- These two tests cannot be used because they default to current timezone, -- These two tests cannot be used because they default to current timezone,
...@@ -65,15 +84,14 @@ SELECT time with time zone '02:30-08' + interval '36:01' AS "14:31:00-08"; ...@@ -65,15 +84,14 @@ SELECT time with time zone '02:30-08' + interval '36:01' AS "14:31:00-08";
-- SELECT time with time zone '03:30' + interval '1 month 04:01' AS "07:31:00-08"; -- SELECT time with time zone '03:30' + interval '1 month 04:01' AS "07:31:00-08";
-- Try the following two tests instead, as a poor substitute -- Try the following two tests instead, as a poor substitute
SELECT CAST(date 'today' + time with time zone '01:30' SELECT CAST(CAST(date 'today' + time with time zone '01:30'
+ interval '02:01' AS time) AS "03:31:00"; + interval '02:01' AS time with time zone) AS time) AS "03:31:00";
SELECT CAST(date 'today' + time with time zone '03:30' SELECT CAST(CAST(date 'today' + time with time zone '03:30'
+ interval '1 month 04:01' AS time) AS "07:31:00"; + interval '1 month 04:01' AS time with time zone) AS time) AS "07:31:00";
SELECT interval '04:30' - time with time zone '01:02' AS "+03:28"; SELECT interval '04:30' - time with time zone '01:02-05' AS "20:32:00-05";
-- We get 100 rows when run in GMT...
SELECT t.d1 + i.f1 AS "102" FROM TIMESTAMP_TBL t, INTERVAL_TBL i SELECT t.d1 + i.f1 AS "102" FROM TIMESTAMP_TBL t, INTERVAL_TBL i
WHERE t.d1 BETWEEN '1990-01-01' AND '2001-01-01' WHERE t.d1 BETWEEN '1990-01-01' AND '2001-01-01'
AND i.f1 BETWEEN '00:00' AND '23:00'; AND i.f1 BETWEEN '00:00' AND '23:00';
...@@ -83,33 +101,51 @@ SELECT t.d1 - i.f1 AS "102" FROM TIMESTAMP_TBL t, INTERVAL_TBL i ...@@ -83,33 +101,51 @@ SELECT t.d1 - i.f1 AS "102" FROM TIMESTAMP_TBL t, INTERVAL_TBL i
AND i.f1 BETWEEN '00:00' AND '23:00'; AND i.f1 BETWEEN '00:00' AND '23:00';
SELECT t.f1 + i.f1 AS "80" FROM TIME_TBL t, INTERVAL_TBL i; SELECT t.f1 + i.f1 AS "80" FROM TIME_TBL t, INTERVAL_TBL i;
SELECT t.f1 - i.f1 AS "80" FROM TIME_TBL t, INTERVAL_TBL i; SELECT t.f1 - i.f1 AS "80" FROM TIME_TBL t, INTERVAL_TBL i;
SELECT t.f2 + i.f1 AS "80" FROM TIME_TBL t, INTERVAL_TBL i; SELECT t.f1 + i.f1 AS "100" FROM TIMETZ_TBL t, INTERVAL_TBL i;
SELECT t.f1 - i.f1 AS "100" FROM TIMETZ_TBL t, INTERVAL_TBL i;
SELECT t.f2 - i.f1 AS "80" FROM TIME_TBL t, INTERVAL_TBL i;
-- SQL9x OVERLAPS operator -- SQL9x OVERLAPS operator
-- test with time zone
SELECT (timestamp with time zone '2000-11-27', timestamp with time zone '2000-11-28')
OVERLAPS (timestamp with time zone '2000-11-27 12:00', timestamp with time zone '2000-11-30') AS "True";
SELECT (timestamp with time zone '2000-11-26', timestamp with time zone '2000-11-27')
OVERLAPS (timestamp with time zone '2000-11-27 12:00', timestamp with time zone '2000-11-30') AS "False";
SELECT (timestamp with time zone '2000-11-27', timestamp with time zone '2000-11-28')
OVERLAPS (timestamp with time zone '2000-11-27 12:00', interval '1 day') AS "True";
SELECT (timestamp with time zone '2000-11-27', interval '12 hours')
OVERLAPS (timestamp with time zone '2000-11-27 12:00', timestamp with time zone '2000-11-30') AS "False";
SELECT (timestamp with time zone '2000-11-27', interval '12 hours')
OVERLAPS (timestamp with time zone '2000-11-27', interval '12 hours') AS "True";
SELECT (timestamp with time zone '2000-11-27', interval '12 hours')
OVERLAPS (timestamp with time zone '2000-11-27 12:00', interval '12 hours') AS "False";
SELECT (timestamp '2000-11-27', timestamp '2000-11-28') -- test without time zone
OVERLAPS (timestamp '2000-11-27 12:00', timestamp '2000-11-30') AS "True"; SELECT (timestamp without time zone '2000-11-27', timestamp without time zone '2000-11-28')
OVERLAPS (timestamp without time zone '2000-11-27 12:00', timestamp without time zone '2000-11-30') AS "True";
SELECT (timestamp '2000-11-26', timestamp '2000-11-27') SELECT (timestamp without time zone '2000-11-26', timestamp without time zone '2000-11-27')
OVERLAPS (timestamp '2000-11-27 12:00', timestamp '2000-11-30') AS "False"; OVERLAPS (timestamp without time zone '2000-11-27 12:00', timestamp without time zone '2000-11-30') AS "False";
SELECT (timestamp '2000-11-27', timestamp '2000-11-28') SELECT (timestamp without time zone '2000-11-27', timestamp without time zone '2000-11-28')
OVERLAPS (timestamp '2000-11-27 12:00', interval '1 day') AS "True"; OVERLAPS (timestamp without time zone '2000-11-27 12:00', interval '1 day') AS "True";
SELECT (timestamp '2000-11-27', interval '12 hours') SELECT (timestamp without time zone '2000-11-27', interval '12 hours')
OVERLAPS (timestamp '2000-11-27 12:00', timestamp '2000-11-30') AS "False"; OVERLAPS (timestamp without time zone '2000-11-27 12:00', timestamp without time zone '2000-11-30') AS "False";
SELECT (timestamp '2000-11-27', interval '12 hours') SELECT (timestamp without time zone '2000-11-27', interval '12 hours')
OVERLAPS (timestamp '2000-11-27', interval '12 hours') AS "True"; OVERLAPS (timestamp without time zone '2000-11-27', interval '12 hours') AS "True";
SELECT (timestamp '2000-11-27', interval '12 hours') SELECT (timestamp without time zone '2000-11-27', interval '12 hours')
OVERLAPS (timestamp '2000-11-27 12:00', interval '12 hours') AS "False"; OVERLAPS (timestamp without time zone '2000-11-27 12:00', interval '12 hours') AS "False";
-- test time and interval
SELECT (time '00:00', time '01:00') SELECT (time '00:00', time '01:00')
OVERLAPS (time '00:30', time '01:30') AS "True"; OVERLAPS (time '00:30', time '01:30') AS "True";
...@@ -119,8 +155,11 @@ SELECT (time '00:00', interval '1 hour') ...@@ -119,8 +155,11 @@ SELECT (time '00:00', interval '1 hour')
SELECT (time '00:00', interval '1 hour') SELECT (time '00:00', interval '1 hour')
OVERLAPS (time '01:30', interval '1 hour') AS "False"; OVERLAPS (time '01:30', interval '1 hour') AS "False";
-- SQL99 seems to want this to be false (and we conform to the spec).
-- istm that this *should* return true, on the theory that time
-- intervals can wrap around the day boundary - thomas 2001-09-25
SELECT (time '00:00', interval '1 hour') SELECT (time '00:00', interval '1 hour')
OVERLAPS (time '01:30', interval '1 day') AS "True"; OVERLAPS (time '01:30', interval '1 day') AS "False";
CREATE TABLE TEMP_TIMESTAMP (f1 timestamp); CREATE TABLE TEMP_TIMESTAMP (f1 timestamp);
...@@ -131,29 +170,29 @@ INSERT INTO TEMP_TIMESTAMP (f1) ...@@ -131,29 +170,29 @@ INSERT INTO TEMP_TIMESTAMP (f1)
WHERE d1 BETWEEN '13-jun-1957' AND '1-jan-1997' WHERE d1 BETWEEN '13-jun-1957' AND '1-jan-1997'
OR d1 BETWEEN '1-jan-1999' AND '1-jan-2010'; OR d1 BETWEEN '1-jan-1999' AND '1-jan-2010';
SELECT '' AS "15", f1 AS timestamp SELECT '' AS "16", f1 AS timestamp
FROM TEMP_TIMESTAMP FROM TEMP_TIMESTAMP
ORDER BY timestamp; ORDER BY timestamp;
SELECT '' AS "150", d.f1 AS timestamp, t.f1 AS interval, d.f1 + t.f1 AS plus SELECT '' AS "160", d.f1 AS timestamp, t.f1 AS interval, d.f1 + t.f1 AS plus
FROM TEMP_TIMESTAMP d, INTERVAL_TBL t FROM TEMP_TIMESTAMP d, INTERVAL_TBL t
ORDER BY plus, timestamp, interval; ORDER BY plus, timestamp, interval;
SELECT '' AS "150", d.f1 AS timestamp, t.f1 AS interval, d.f1 - t.f1 AS minus SELECT '' AS "160", d.f1 AS timestamp, t.f1 AS interval, d.f1 - t.f1 AS minus
FROM TEMP_TIMESTAMP d, INTERVAL_TBL t FROM TEMP_TIMESTAMP d, INTERVAL_TBL t
WHERE isfinite(d.f1) WHERE isfinite(d.f1)
ORDER BY minus, timestamp, interval; ORDER BY minus, timestamp, interval;
SELECT '' AS "15", d.f1 AS timestamp, timestamp '1980-01-06 00:00 GMT' AS gpstime_zero, SELECT '' AS "16", d.f1 AS timestamp, timestamp '1980-01-06 00:00 GMT' AS gpstime_zero,
d.f1 - timestamp '1980-01-06 00:00 GMT' AS difference d.f1 - timestamp '1980-01-06 00:00 GMT' AS difference
FROM TEMP_TIMESTAMP d FROM TEMP_TIMESTAMP d
ORDER BY difference; ORDER BY difference;
SELECT '' AS "225", d1.f1 AS timestamp1, d2.f1 AS timestamp2, d1.f1 - d2.f1 AS difference SELECT '' AS "226", d1.f1 AS timestamp1, d2.f1 AS timestamp2, d1.f1 - d2.f1 AS difference
FROM TEMP_TIMESTAMP d1, TEMP_TIMESTAMP d2 FROM TEMP_TIMESTAMP d1, TEMP_TIMESTAMP d2
ORDER BY timestamp1, timestamp2, difference; ORDER BY timestamp1, timestamp2, difference;
SELECT '' as "54", d1 as timestamp, SELECT '' as "55", d1 as timestamp,
date_part('year', d1) AS year, date_part('month', d1) AS month, date_part('year', d1) AS year, date_part('month', d1) AS month,
date_part('day',d1) AS day, date_part('hour', d1) AS hour, date_part('day',d1) AS day, date_part('hour', d1) AS hour,
date_part('minute', d1) AS minute, date_part('second', d1) AS second date_part('minute', d1) AS minute, date_part('second', d1) AS second
...@@ -166,8 +205,7 @@ SELECT '' as "54", d1 as timestamp, ...@@ -166,8 +205,7 @@ SELECT '' as "54", d1 as timestamp,
-- --
SELECT '' AS ten, ABSTIME_TBL.f1 AS abstime, RELTIME_TBL.f1 AS reltime SELECT '' AS ten, ABSTIME_TBL.f1 AS abstime, RELTIME_TBL.f1 AS reltime
WHERE (ABSTIME_TBL.f1 + RELTIME_TBL.f1) WHERE (ABSTIME_TBL.f1 + RELTIME_TBL.f1) < abstime 'Jan 14 14:00:00 1971'
< abstime 'Jan 14 14:00:00 1971'
ORDER BY abstime, reltime; ORDER BY abstime, reltime;
-- these four queries should return the same answer -- these four queries should return the same answer
...@@ -194,30 +232,30 @@ SELECT '' AS three, ABSTIME_TBL.* ...@@ -194,30 +232,30 @@ SELECT '' AS three, ABSTIME_TBL.*
-- Conversions -- Conversions
-- --
SELECT '' AS "15", f1 AS timestamp, date( f1) AS date SELECT '' AS "16", f1 AS timestamp, date(f1) AS date
FROM TEMP_TIMESTAMP FROM TEMP_TIMESTAMP
WHERE f1 <> timestamp 'current' WHERE f1 <> timestamp 'current'
ORDER BY date, timestamp; ORDER BY date, timestamp;
SELECT '' AS "15", f1 AS timestamp, abstime( f1) AS abstime SELECT '' AS "16", f1 AS timestamp, abstime(f1) AS abstime
FROM TEMP_TIMESTAMP FROM TEMP_TIMESTAMP
ORDER BY abstime; ORDER BY abstime;
SELECT '' AS four, f1 AS abstime, date( f1) AS date SELECT '' AS four, f1 AS abstime, date(f1) AS date
FROM ABSTIME_TBL FROM ABSTIME_TBL
WHERE isfinite(f1) AND f1 <> abstime 'current' WHERE isfinite(f1) AND f1 <> abstime 'current'
ORDER BY date, abstime; ORDER BY date, abstime;
SELECT '' AS five, d1 AS timestamp, abstime(d1) AS abstime SELECT '' AS two, d1 AS timestamp, abstime(d1) AS abstime
FROM TIMESTAMP_TBL WHERE NOT isfinite(d1); FROM TIMESTAMP_TBL WHERE NOT isfinite(d1);
SELECT '' AS three, f1 as abstime, timestamp(f1) AS timestamp SELECT '' AS three, f1 as abstime, timestamp(f1) AS timestamp
FROM ABSTIME_TBL WHERE NOT isfinite(f1); FROM ABSTIME_TBL WHERE NOT isfinite(f1);
SELECT '' AS ten, f1 AS interval, reltime( f1) AS reltime SELECT '' AS ten, f1 AS interval, reltime(f1) AS reltime
FROM INTERVAL_TBL; FROM INTERVAL_TBL;
SELECT '' AS six, f1 as reltime, interval( f1) AS interval SELECT '' AS six, f1 as reltime, interval(f1) AS interval
FROM RELTIME_TBL; FROM RELTIME_TBL;
DROP TABLE TEMP_TIMESTAMP; DROP TABLE TEMP_TIMESTAMP;
...@@ -230,23 +268,23 @@ SET DateStyle TO 'US,Postgres'; ...@@ -230,23 +268,23 @@ SET DateStyle TO 'US,Postgres';
SHOW DateStyle; SHOW DateStyle;
SELECT '' AS "66", d1 AS us_postgres FROM TIMESTAMP_TBL; SELECT '' AS "64", d1 AS us_postgres FROM TIMESTAMP_TBL;
SELECT '' AS eight, f1 AS us_postgres FROM ABSTIME_TBL; SELECT '' AS seven, f1 AS us_postgres FROM ABSTIME_TBL;
SET DateStyle TO 'US,ISO'; SET DateStyle TO 'US,ISO';
SELECT '' AS "66", d1 AS us_iso FROM TIMESTAMP_TBL; SELECT '' AS "64", d1 AS us_iso FROM TIMESTAMP_TBL;
SELECT '' AS eight, f1 AS us_iso FROM ABSTIME_TBL; SELECT '' AS seven, f1 AS us_iso FROM ABSTIME_TBL;
SET DateStyle TO 'US,SQL'; SET DateStyle TO 'US,SQL';
SHOW DateStyle; SHOW DateStyle;
SELECT '' AS "66", d1 AS us_sql FROM TIMESTAMP_TBL; SELECT '' AS "64", d1 AS us_sql FROM TIMESTAMP_TBL;
SELECT '' AS eight, f1 AS us_sql FROM ABSTIME_TBL; SELECT '' AS seven, f1 AS us_sql FROM ABSTIME_TBL;
SET DateStyle TO 'European,Postgres'; SET DateStyle TO 'European,Postgres';
...@@ -256,24 +294,24 @@ INSERT INTO TIMESTAMP_TBL VALUES('13/06/1957'); ...@@ -256,24 +294,24 @@ INSERT INTO TIMESTAMP_TBL VALUES('13/06/1957');
SELECT count(*) as one FROM TIMESTAMP_TBL WHERE d1 = 'Jun 13 1957'; SELECT count(*) as one FROM TIMESTAMP_TBL WHERE d1 = 'Jun 13 1957';
SELECT '' AS "67", d1 AS european_postgres FROM TIMESTAMP_TBL; SELECT '' AS "65", d1 AS european_postgres FROM TIMESTAMP_TBL;
SELECT '' AS eight, f1 AS european_postgres FROM ABSTIME_TBL; SELECT '' AS seven, f1 AS european_postgres FROM ABSTIME_TBL;
SET DateStyle TO 'European,ISO'; SET DateStyle TO 'European,ISO';
SHOW DateStyle; SHOW DateStyle;
SELECT '' AS "67", d1 AS european_iso FROM TIMESTAMP_TBL; SELECT '' AS "65", d1 AS european_iso FROM TIMESTAMP_TBL;
SELECT '' AS eight, f1 AS european_iso FROM ABSTIME_TBL; SELECT '' AS seven, f1 AS european_iso FROM ABSTIME_TBL;
SET DateStyle TO 'European,SQL'; SET DateStyle TO 'European,SQL';
SHOW DateStyle; SHOW DateStyle;
SELECT '' AS "67", d1 AS european_sql FROM TIMESTAMP_TBL; SELECT '' AS "65", d1 AS european_sql FROM TIMESTAMP_TBL;
SELECT '' AS eight, f1 AS european_sql FROM ABSTIME_TBL; SELECT '' AS seven, f1 AS european_sql FROM ABSTIME_TBL;
RESET DateStyle; RESET DateStyle;
...@@ -394,7 +394,6 @@ WHERE p1.aggfinalfn = 0 AND p1.aggfinaltype != p1.aggtranstype; ...@@ -394,7 +394,6 @@ WHERE p1.aggfinalfn = 0 AND p1.aggfinaltype != p1.aggtranstype;
-- implemented using int4larger/int4smaller. Until we have -- implemented using int4larger/int4smaller. Until we have
-- some cleaner way of dealing with binary-equivalent types, just leave -- some cleaner way of dealing with binary-equivalent types, just leave
-- those two tuples in the expected output. -- those two tuples in the expected output.
SELECT p1.oid, p1.aggname, p2.oid, p2.proname SELECT p1.oid, p1.aggname, p2.oid, p2.proname
FROM pg_aggregate AS p1, pg_proc AS p2 FROM pg_aggregate AS p1, pg_proc AS p2
WHERE p1.aggtransfn = p2.oid AND WHERE p1.aggtransfn = p2.oid AND
......
...@@ -2,18 +2,20 @@ ...@@ -2,18 +2,20 @@
-- TIME -- TIME
-- --
CREATE TABLE TIME_TBL (f1 time, f2 time with time zone); CREATE TABLE TIME_TBL (f1 time);
INSERT INTO TIME_TBL VALUES ('00:00', '00:00 PDT'); INSERT INTO TIME_TBL VALUES ('00:00');
INSERT INTO TIME_TBL VALUES ('01:00', '01:00 PDT'); INSERT INTO TIME_TBL VALUES ('01:00');
INSERT INTO TIME_TBL VALUES ('02:03', '02:03 PDT'); INSERT INTO TIME_TBL VALUES ('02:03');
INSERT INTO TIME_TBL VALUES ('11:59', '11:59 PDT'); INSERT INTO TIME_TBL VALUES ('07:07 PST');
INSERT INTO TIME_TBL VALUES ('12:00', '12:00 PDT'); INSERT INTO TIME_TBL VALUES ('08:08 EDT');
INSERT INTO TIME_TBL VALUES ('12:01', '12:01 PDT'); INSERT INTO TIME_TBL VALUES ('11:59');
INSERT INTO TIME_TBL VALUES ('23:59', '23:59 PDT'); INSERT INTO TIME_TBL VALUES ('12:00');
INSERT INTO TIME_TBL VALUES ('11:59:59.99 PM', '11:59:59.99 PM PDT'); INSERT INTO TIME_TBL VALUES ('12:01');
INSERT INTO TIME_TBL VALUES ('23:59');
INSERT INTO TIME_TBL VALUES ('11:59:59.99 PM');
SELECT f1 AS "Time", f2 AS "Time TZ" FROM TIME_TBL; SELECT f1 AS "Time" FROM TIME_TBL;
SELECT f1 AS "Three" FROM TIME_TBL WHERE f1 < '05:06:07'; SELECT f1 AS "Three" FROM TIME_TBL WHERE f1 < '05:06:07';
...@@ -33,5 +35,3 @@ SELECT f1 AS "Eight" FROM TIME_TBL WHERE f1 >= '00:00'; ...@@ -33,5 +35,3 @@ SELECT f1 AS "Eight" FROM TIME_TBL WHERE f1 >= '00:00';
-- where we do mixed-type arithmetic. - thomas 2000-12-02 -- where we do mixed-type arithmetic. - thomas 2000-12-02
SELECT f1 + time '00:01' AS "Illegal" FROM TIME_TBL; SELECT f1 + time '00:01' AS "Illegal" FROM TIME_TBL;
SELECT f2 + time with time zone '00:01' AS "Illegal" FROM TIME_TBL;
-- --
-- DATETIME -- TIMESTAMP
-- --
-- Shorthand values -- needed so tests pass even in Australia
-- Not directly usable for regression testing since these are not constants.
-- So, just try to test parser and hope for the best - thomas 97/04/26
-- needed so tests pass
SET australian_timezones = 'off'; SET australian_timezones = 'off';
SELECT (timestamp 'today' = (timestamp 'yesterday' + interval '1 day')) as "True"; CREATE TABLE TIMESTAMP_TBL ( d1 timestamp without time zone);
SELECT (timestamp 'today' = (timestamp 'tomorrow' - interval '1 day')) as "True";
SELECT (timestamp 'tomorrow' = (timestamp 'yesterday' + interval '2 days')) as "True";
SELECT (timestamp 'current' = 'now') as "True";
SELECT (timestamp 'now' - 'current') AS "ZeroSecs";
SET DateStyle = 'Postgres,NonEuropean'; -- Shorthand values
SELECT timestamp(date '1994-01-01', time '11:00') AS "Jan_01_1994_11am"; -- Not directly usable for regression testing since these are not constants.
SELECT timestamp(date '1994-01-01', time '10:00') AS "Jan_01_1994_10am"; -- So, just try to test parser and hope for the best - thomas 97/04/26
SELECT timestamp(date '1994-01-01', time with time zone '11:00-5') AS "Jan_01_1994_8am";
CREATE TABLE TIMESTAMP_TBL ( d1 timestamp);
INSERT INTO TIMESTAMP_TBL VALUES ('now');
INSERT INTO TIMESTAMP_TBL VALUES ('current'); INSERT INTO TIMESTAMP_TBL VALUES ('current');
INSERT INTO TIMESTAMP_TBL VALUES ('today'); INSERT INTO TIMESTAMP_TBL VALUES ('today');
INSERT INTO TIMESTAMP_TBL VALUES ('yesterday'); INSERT INTO TIMESTAMP_TBL VALUES ('yesterday');
...@@ -27,29 +18,27 @@ INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow'); ...@@ -27,29 +18,27 @@ INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow');
INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow EST'); INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow EST');
INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow zulu'); INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow zulu');
SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today'; SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'today';
SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'tomorrow'; SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'tomorrow';
SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'yesterday'; SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'yesterday';
SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today' + interval '1 day'; SELECT count(*) AS None FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'now';
SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today' - interval '1 day';
SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'now';
DELETE FROM TIMESTAMP_TBL; DELETE FROM TIMESTAMP_TBL;
-- verify uniform transaction time within transaction block -- verify uniform transaction time within transaction block
INSERT INTO TIMESTAMP_TBL VALUES ('current');
BEGIN; BEGIN;
INSERT INTO TIMESTAMP_TBL VALUES ('now'); INSERT INTO TIMESTAMP_TBL VALUES ('now');
SELECT count(*) AS two FROM TIMESTAMP_TBL WHERE d1 = timestamp 'now'; INSERT INTO TIMESTAMP_TBL VALUES ('now');
SELECT count(*) AS two FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'now';
END; END;
DELETE FROM TIMESTAMP_TBL; DELETE FROM TIMESTAMP_TBL;
-- Special values -- Special values
INSERT INTO TIMESTAMP_TBL VALUES ('invalid');
INSERT INTO TIMESTAMP_TBL VALUES ('-infinity'); INSERT INTO TIMESTAMP_TBL VALUES ('-infinity');
INSERT INTO TIMESTAMP_TBL VALUES ('infinity'); INSERT INTO TIMESTAMP_TBL VALUES ('infinity');
INSERT INTO TIMESTAMP_TBL VALUES ('epoch'); INSERT INTO TIMESTAMP_TBL VALUES ('epoch');
-- Obsolete special values
INSERT INTO TIMESTAMP_TBL VALUES ('invalid');
-- Postgres v6.0 standard output format -- Postgres v6.0 standard output format
INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST'); INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST');
...@@ -71,6 +60,7 @@ INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01-0800'); ...@@ -71,6 +60,7 @@ INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01-0800');
INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01 -08:00'); INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01 -08:00');
INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 -0800'); INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 -0800');
INSERT INTO TIMESTAMP_TBL VALUES ('1997-06-10 17:32:01 -07:00'); INSERT INTO TIMESTAMP_TBL VALUES ('1997-06-10 17:32:01 -07:00');
INSERT INTO TIMESTAMP_TBL VALUES ('2001-09-22T18:19:20');
-- POSIX format -- POSIX format
INSERT INTO TIMESTAMP_TBL VALUES ('2000-03-15 08:14:01 GMT+8'); INSERT INTO TIMESTAMP_TBL VALUES ('2000-03-15 08:14:01 GMT+8');
...@@ -133,50 +123,46 @@ INSERT INTO TIMESTAMP_TBL VALUES ('Jan 01 17:32:01 2001'); ...@@ -133,50 +123,46 @@ INSERT INTO TIMESTAMP_TBL VALUES ('Jan 01 17:32:01 2001');
INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 -0097'); INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 -0097');
INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC'); INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC');
SELECT '' AS "66", d1 FROM TIMESTAMP_TBL; SELECT '' AS "64", d1 FROM TIMESTAMP_TBL;
-- Demonstrate functions and operators -- Demonstrate functions and operators
SELECT '' AS "47", d1 FROM TIMESTAMP_TBL SELECT '' AS "48", d1 FROM TIMESTAMP_TBL
WHERE d1 > timestamp '1997-01-02' and d1 != timestamp 'current'; WHERE d1 > timestamp without time zone '1997-01-02';
SELECT '' AS "15", d1 FROM TIMESTAMP_TBL SELECT '' AS "15", d1 FROM TIMESTAMP_TBL
WHERE d1 < timestamp '1997-01-02' and d1 != timestamp 'current'; WHERE d1 < timestamp without time zone '1997-01-02';
SELECT '' AS one, d1 FROM TIMESTAMP_TBL SELECT '' AS one, d1 FROM TIMESTAMP_TBL
WHERE d1 = timestamp '1997-01-02' and d1 != timestamp 'current'; WHERE d1 = timestamp without time zone '1997-01-02';
SELECT '' AS "62", d1 FROM TIMESTAMP_TBL SELECT '' AS "63", d1 FROM TIMESTAMP_TBL
WHERE d1 != timestamp '1997-01-02' and d1 != timestamp 'current'; WHERE d1 != timestamp without time zone '1997-01-02';
SELECT '' AS "16", d1 FROM TIMESTAMP_TBL SELECT '' AS "16", d1 FROM TIMESTAMP_TBL
WHERE d1 <= timestamp '1997-01-02' and d1 != timestamp 'current'; WHERE d1 <= timestamp without time zone '1997-01-02';
SELECT '' AS "48", d1 FROM TIMESTAMP_TBL SELECT '' AS "49", d1 FROM TIMESTAMP_TBL
WHERE d1 >= timestamp '1997-01-02' and d1 != timestamp 'current'; WHERE d1 >= timestamp without time zone '1997-01-02';
SELECT '' AS "66", d1 + interval '1 year' AS one_year FROM TIMESTAMP_TBL; SELECT '' AS "54", d1 - timestamp without time zone '1997-01-02' AS diff
SELECT '' AS "66", d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL;
SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff
FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
-- Test casting within a BETWEEN qualifier -- Test casting within a BETWEEN qualifier
SELECT '' AS "53", d1 - timestamp '1997-01-02' AS diff SELECT '' AS "54", d1 - timestamp without time zone '1997-01-02' AS diff
FROM TIMESTAMP_TBL FROM TIMESTAMP_TBL
WHERE d1 BETWEEN timestamp '1902-01-01' AND timestamp '2038-01-01'; WHERE d1 BETWEEN timestamp without time zone '1902-01-01'
AND timestamp without time zone '2038-01-01';
SELECT '' AS "53", date_part( 'year', d1) AS year, date_part( 'month', d1) AS month, SELECT '' AS "54", date_part( 'year', d1) AS year, date_part( 'month', d1) AS month,
date_part( 'day', d1) AS day, date_part( 'hour', d1) AS hour, date_part( 'day', d1) AS day, date_part( 'hour', d1) AS hour,
date_part( 'minute', d1) AS minute, date_part( 'second', d1) AS second date_part( 'minute', d1) AS minute, date_part( 'second', d1) AS second
FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
SELECT '' AS "53", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec, SELECT '' AS "54", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec,
date_part( 'usec', d1) AS usec date_part( 'usec', d1) AS usec
FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
-- TO_CHAR() -- TO_CHAR()
--
SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon') SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon')
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
...@@ -192,7 +178,7 @@ SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM ...@@ -192,7 +178,7 @@ SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM
SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS') SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS')
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
SELECT '' AS to_char_6, to_char(d1, '"HH:MI:SS is" HH:MI:SS "\\"text bettween quote marks\\""') SELECT '' AS to_char_6, to_char(d1, '"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""')
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS') SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS')
...@@ -205,7 +191,6 @@ SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. H ...@@ -205,7 +191,6 @@ SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. H
FROM TIMESTAMP_TBL; FROM TIMESTAMP_TBL;
-- TO_TIMESTAMP() -- TO_TIMESTAMP()
--
SELECT '' AS to_timestamp_1, to_timestamp('0097/Feb/16 --> 08:14:30', 'YYYY/Mon/DD --> HH:MI:SS'); SELECT '' AS to_timestamp_1, to_timestamp('0097/Feb/16 --> 08:14:30', 'YYYY/Mon/DD --> HH:MI:SS');
SELECT '' AS to_timestamp_2, to_timestamp('97/2/16 8:14:30', 'FMYYYY/FMMM/FMDD FMHH:FMMI:FMSS'); SELECT '' AS to_timestamp_2, to_timestamp('97/2/16 8:14:30', 'FMYYYY/FMMM/FMDD FMHH:FMMI:FMSS');
...@@ -217,8 +202,8 @@ SELECT '' AS to_timestamp_4, to_timestamp('My birthday-> Year: 1976, Month: May, ...@@ -217,8 +202,8 @@ SELECT '' AS to_timestamp_4, to_timestamp('My birthday-> Year: 1976, Month: May,
SELECT '' AS to_timestamp_5, to_timestamp('1,582nd VIII 21', 'Y,YYYth FMRM DD'); SELECT '' AS to_timestamp_5, to_timestamp('1,582nd VIII 21', 'Y,YYYth FMRM DD');
SELECT '' AS to_timestamp_6, to_timestamp('15 "text bettween quote marks" 98 54 45', SELECT '' AS to_timestamp_6, to_timestamp('15 "text between quote marks" 98 54 45',
'HH "\\text bettween quote marks\\"" YY MI SS'); 'HH "\\text between quote marks\\"" YY MI SS');
SELECT '' AS to_timestamp_7, to_timestamp('05121445482000', 'MMDDHHMISSYYYY'); SELECT '' AS to_timestamp_7, to_timestamp('05121445482000', 'MMDDHHMISSYYYY');
......
--
-- TIMESTAMPTZ
--
-- needed so tests pass even in Australia
SET australian_timezones = 'off';
CREATE TABLE TIMESTAMPTZ_TBL ( d1 timestamp with time zone);
INSERT INTO TIMESTAMPTZ_TBL VALUES ('now');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('current');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('today');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('yesterday');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('tomorrow');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('tomorrow EST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('tomorrow zulu');
SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'today';
SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'tomorrow';
SELECT count(*) AS One FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'yesterday';
SELECT count(*) AS None FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'now';
DELETE FROM TIMESTAMPTZ_TBL;
-- verify uniform transaction time within transaction block
BEGIN;
INSERT INTO TIMESTAMPTZ_TBL VALUES ('now');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('now');
SELECT count(*) AS two FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone 'now';
END;
DELETE FROM TIMESTAMPTZ_TBL;
-- Special values
INSERT INTO TIMESTAMPTZ_TBL VALUES ('-infinity');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('infinity');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('epoch');
-- Obsolete special values
INSERT INTO TIMESTAMPTZ_TBL VALUES ('invalid');
-- Postgres v6.0 standard output format
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Invalid Abstime');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Undefined Abstime');
-- Variations on Postgres v6.1 standard output format
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.000001 1997 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.999999 1997 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.4 1997 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.5 1997 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mon Feb 10 17:32:01.6 1997 PST');
-- ISO 8601 format
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-01-02');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-01-02 03:04:05');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-02-10 17:32:01-08');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-02-10 17:32:01-0800');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-02-10 17:32:01 -08:00');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970210 173201 -0800');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-06-10 17:32:01 -07:00');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('2001-09-22T18:19:20');
-- POSIX format
INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 08:14:01 GMT+8');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 13:14:02 GMT-1');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 12:14:03 GMT -2');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 03:14:04 EST+3');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('2000-03-15 02:14:05 EST +2:00');
-- Variations for acceptable input formats
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 17:32:01 1997 -0800');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 5:32PM 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997/02/10 17:32:01-0800');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-02-10 17:32:01 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb-10-1997 17:32:01 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('02-10-1997 17:32:01 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970210 173201 PST');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('97FEB10 5:32:01PM UTC');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('97/02/10 17:32:01 UTC');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('97.041 17:32:01 UTC');
-- Check date conversion and date arithmetic
INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-06-10 18:32:01 PDT');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 11 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 12 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 13 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 14 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 15 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 0097 BC');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 0097');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 0597');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1097');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1697');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1797');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1897');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 2097');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 28 17:32:01 1996');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 29 17:32:01 1996');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mar 01 17:32:01 1996');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 30 17:32:01 1996');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 1996');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Jan 01 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 28 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 29 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mar 01 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 30 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 1999');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Jan 01 17:32:01 2000');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 2000');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Jan 01 17:32:01 2001');
-- Currently unsupported syntax and ranges
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 -0097');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 5097 BC');
SELECT '' AS "64", d1 FROM TIMESTAMPTZ_TBL;
-- Demonstrate functions and operators
SELECT '' AS "48", d1 FROM TIMESTAMPTZ_TBL
WHERE d1 > timestamp with time zone '1997-01-02';
SELECT '' AS "15", d1 FROM TIMESTAMPTZ_TBL
WHERE d1 < timestamp with time zone '1997-01-02';
SELECT '' AS one, d1 FROM TIMESTAMPTZ_TBL
WHERE d1 = timestamp with time zone '1997-01-02';
SELECT '' AS "63", d1 FROM TIMESTAMPTZ_TBL
WHERE d1 != timestamp with time zone '1997-01-02';
SELECT '' AS "16", d1 FROM TIMESTAMPTZ_TBL
WHERE d1 <= timestamp with time zone '1997-01-02';
SELECT '' AS "49", d1 FROM TIMESTAMPTZ_TBL
WHERE d1 >= timestamp with time zone '1997-01-02';
SELECT '' AS "54", d1 - timestamp with time zone '1997-01-02' AS diff
FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
-- Test casting within a BETWEEN qualifier
SELECT '' AS "54", d1 - timestamp with time zone '1997-01-02' AS diff
FROM TIMESTAMPTZ_TBL
WHERE d1 BETWEEN timestamp with time zone '1902-01-01' AND timestamp with time zone '2038-01-01';
SELECT '' AS "54", date_part( 'year', d1) AS year, date_part( 'month', d1) AS month,
date_part( 'day', d1) AS day, date_part( 'hour', d1) AS hour,
date_part( 'minute', d1) AS minute, date_part( 'second', d1) AS second
FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
SELECT '' AS "54", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec,
date_part( 'usec', d1) AS usec
FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
-- TO_CHAR()
SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_6, to_char(d1, '"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm')
FROM TIMESTAMPTZ_TBL;
-- TO_TIMESTAMP()
SELECT '' AS to_timestamp_1, to_timestamp('0097/Feb/16 --> 08:14:30', 'YYYY/Mon/DD --> HH:MI:SS');
SELECT '' AS to_timestamp_2, to_timestamp('97/2/16 8:14:30', 'FMYYYY/FMMM/FMDD FMHH:FMMI:FMSS');
SELECT '' AS to_timestamp_3, to_timestamp('1985 January 12', 'YYYY FMMonth DD');
SELECT '' AS to_timestamp_4, to_timestamp('My birthday-> Year: 1976, Month: May, Day: 16',
'"My birthday-> Year" YYYY, "Month:" FMMonth, "Day:" DD');
SELECT '' AS to_timestamp_5, to_timestamp('1,582nd VIII 21', 'Y,YYYth FMRM DD');
SELECT '' AS to_timestamp_6, to_timestamp('15 "text between quote marks" 98 54 45',
'HH "\\text between quote marks\\"" YY MI SS');
SELECT '' AS to_timestamp_7, to_timestamp('05121445482000', 'MMDDHHMISSYYYY');
SELECT '' AS to_timestamp_8, to_timestamp('2000January09Sunday', 'YYYYFMMonthDDFMDay');
SELECT '' AS to_timestamp_9, to_timestamp('97/Feb/16', 'YYMonDD');
SELECT '' AS to_timestamp_10, to_timestamp('19971116', 'YYYYMMDD');
SELECT '' AS to_timestamp_11, to_timestamp('20000-1116', 'YYYY-MMDD');
SELECT '' AS to_timestamp_12, to_timestamp('9-1116', 'Y-MMDD');
SELECT '' AS to_timestamp_13, to_timestamp('95-1116', 'YY-MMDD');
SELECT '' AS to_timestamp_14, to_timestamp('995-1116', 'YYY-MMDD');
SET DateStyle TO DEFAULT;
--
-- TIMETZ
--
CREATE TABLE TIMETZ_TBL (f1 time with time zone);
INSERT INTO TIMETZ_TBL VALUES ('00:01 PDT');
INSERT INTO TIMETZ_TBL VALUES ('01:00 PDT');
INSERT INTO TIMETZ_TBL VALUES ('02:03 PDT');
INSERT INTO TIMETZ_TBL VALUES ('07:07 PST');
INSERT INTO TIMETZ_TBL VALUES ('08:08 EDT');
INSERT INTO TIMETZ_TBL VALUES ('11:59 PDT');
INSERT INTO TIMETZ_TBL VALUES ('12:00 PDT');
INSERT INTO TIMETZ_TBL VALUES ('12:01 PDT');
INSERT INTO TIMETZ_TBL VALUES ('23:59 PDT');
INSERT INTO TIMETZ_TBL VALUES ('11:59:59.99 PM PDT');
SELECT f1 AS "Time TZ" FROM TIMETZ_TBL;
SELECT f1 AS "Three" FROM TIMETZ_TBL WHERE f1 < '05:06:07';
SELECT f1 AS "Seven" FROM TIMETZ_TBL WHERE f1 > '05:06:07';
SELECT f1 AS "None" FROM TIMETZ_TBL WHERE f1 < '00:00';
SELECT f1 AS "Ten" FROM TIMETZ_TBL WHERE f1 >= '00:00';
--
-- TIME simple math
--
-- We now make a distinction between time and intervals,
-- and adding two times together makes no sense at all.
-- Leave in one query to show that it is rejected,
-- and do the rest of the testing in horology.sql
-- where we do mixed-type arithmetic. - thomas 2000-12-02
SELECT f1 + time with time zone '00:01' AS "Illegal" FROM TIMETZ_TBL;
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
CREATE TABLE TINTERVAL_TBL (f1 tinterval); CREATE TABLE TINTERVAL_TBL (f1 tinterval);
-- Should accept any abstime,
-- so do not bother with extensive testing of values
INSERT INTO TINTERVAL_TBL (f1) INSERT INTO TINTERVAL_TBL (f1)
VALUES ('["-infinity" "infinity"]'); VALUES ('["-infinity" "infinity"]');
...@@ -17,7 +20,7 @@ INSERT INTO TINTERVAL_TBL (f1) ...@@ -17,7 +20,7 @@ INSERT INTO TINTERVAL_TBL (f1)
VALUES ('["epoch" "Mon May 1 00:30:30 1995"]'); VALUES ('["epoch" "Mon May 1 00:30:30 1995"]');
INSERT INTO TINTERVAL_TBL (f1) INSERT INTO TINTERVAL_TBL (f1)
VALUES ('["Feb 15 1990 12:15:03" "current"]'); VALUES ('["Feb 15 1990 12:15:03" "2001-09-23 11:12:13"]');
-- badly formatted tintervals -- badly formatted tintervals
...@@ -96,4 +99,3 @@ SELECT '' AS three, t1.f1 ...@@ -96,4 +99,3 @@ SELECT '' AS three, t1.f1
ORDER BY t1.f1; ORDER BY t1.f1;
RESET geqo; RESET geqo;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment