Commit d1ab3eb7 authored by Tom Lane's avatar Tom Lane

Clean up the ancient decision to show only two fractional-seconds digits

in "postgres_verbose" intervalstyle, and the equally arbitrary decision to
show at least two fractional-seconds digits in most other datetime display
styles.  This results in some minor changes in the expected regression test
outputs.

Also, coalesce a lot of repetitive code in datetime.c into subroutines,
for clarity and ease of maintenance.  In particular this roughly halves
the number of #ifdef HAVE_INT64_TIMESTAMP segments.

Ron Mayer, with some additional kibitzing from Tom Lane
parent 466368b8
This diff is collapsed.
...@@ -423,9 +423,9 @@ SELECT '' AS "64", d1 + interval '1 year' AS one_year FROM TIMESTAMP_TBL; ...@@ -423,9 +423,9 @@ SELECT '' AS "64", d1 + interval '1 year' AS one_year FROM TIMESTAMP_TBL;
| Tue Feb 10 17:32:01 1998 | Tue Feb 10 17:32:01 1998
| Tue Feb 10 17:32:01 1998 | Tue Feb 10 17:32:01 1998
| Tue Feb 10 17:32:02 1998 | Tue Feb 10 17:32:02 1998
| Tue Feb 10 17:32:01.40 1998 | Tue Feb 10 17:32:01.4 1998
| Tue Feb 10 17:32:01.50 1998 | Tue Feb 10 17:32:01.5 1998
| Tue Feb 10 17:32:01.60 1998 | Tue Feb 10 17:32:01.6 1998
| Fri Jan 02 00:00:00 1998 | Fri Jan 02 00:00:00 1998
| Fri Jan 02 03:04:05 1998 | Fri Jan 02 03:04:05 1998
| Tue Feb 10 17:32:01 1998 | Tue Feb 10 17:32:01 1998
...@@ -493,9 +493,9 @@ SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL; ...@@ -493,9 +493,9 @@ SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL;
| Sat Feb 10 17:32:01 1996 | Sat Feb 10 17:32:01 1996
| Sat Feb 10 17:32:01 1996 | Sat Feb 10 17:32:01 1996
| Sat Feb 10 17:32:02 1996 | Sat Feb 10 17:32:02 1996
| Sat Feb 10 17:32:01.40 1996 | Sat Feb 10 17:32:01.4 1996
| Sat Feb 10 17:32:01.50 1996 | Sat Feb 10 17:32:01.5 1996
| Sat Feb 10 17:32:01.60 1996 | Sat Feb 10 17:32:01.6 1996
| Tue Jan 02 00:00:00 1996 | Tue Jan 02 00:00:00 1996
| Tue Jan 02 03:04:05 1996 | Tue Jan 02 03:04:05 1996
| Sat Feb 10 17:32:01 1996 | Sat Feb 10 17:32:01 1996
...@@ -668,9 +668,9 @@ SELECT '' AS "64", d1 + interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL; ...@@ -668,9 +668,9 @@ SELECT '' AS "64", d1 + interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
| 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:02 1998 PST | Tue Feb 10 17:32:02 1998 PST
| Tue Feb 10 17:32:01.40 1998 PST | Tue Feb 10 17:32:01.4 1998 PST
| Tue Feb 10 17:32:01.50 1998 PST | Tue Feb 10 17:32:01.5 1998 PST
| Tue Feb 10 17:32:01.60 1998 PST | Tue Feb 10 17:32:01.6 1998 PST
| Fri Jan 02 00:00:00 1998 PST | Fri Jan 02 00:00:00 1998 PST
| Fri Jan 02 03:04:05 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
...@@ -739,9 +739,9 @@ SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL; ...@@ -739,9 +739,9 @@ SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
| 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:02 1996 PST | Sat Feb 10 17:32:02 1996 PST
| Sat Feb 10 17:32:01.40 1996 PST | Sat Feb 10 17:32:01.4 1996 PST
| Sat Feb 10 17:32:01.50 1996 PST | Sat Feb 10 17:32:01.5 1996 PST
| Sat Feb 10 17:32:01.60 1996 PST | Sat Feb 10 17:32:01.6 1996 PST
| Tue Jan 02 00:00:00 1996 PST | Tue Jan 02 00:00:00 1996 PST
| Tue Jan 02 03:04:05 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
...@@ -885,7 +885,7 @@ SELECT t.d1 AS t, i.f1 AS i, t.d1 + i.f1 AS "add", t.d1 - i.f1 AS "subtract" ...@@ -885,7 +885,7 @@ SELECT t.d1 AS t, i.f1 AS i, t.d1 + i.f1 AS "add", t.d1 - i.f1 AS "subtract"
AND i.f1 BETWEEN '00:00' AND '23:00' AND i.f1 BETWEEN '00:00' AND '23:00'
ORDER BY 1,2; ORDER BY 1,2;
t | i | add | subtract t | i | add | subtract
-----------------------------+-----------+-----------------------------+----------------------------- ----------------------------+-----------+----------------------------+----------------------------
Wed Feb 28 17:32:01 1996 | @ 1 min | Wed Feb 28 17:33:01 1996 | Wed Feb 28 17:31:01 1996 Wed Feb 28 17:32:01 1996 | @ 1 min | Wed Feb 28 17:33:01 1996 | Wed Feb 28 17:31:01 1996
Wed Feb 28 17:32:01 1996 | @ 5 hours | Wed Feb 28 22:32:01 1996 | Wed Feb 28 12:32:01 1996 Wed Feb 28 17:32:01 1996 | @ 5 hours | Wed Feb 28 22:32:01 1996 | Wed Feb 28 12:32:01 1996
Thu Feb 29 17:32:01 1996 | @ 1 min | Thu Feb 29 17:33:01 1996 | Thu Feb 29 17:31:01 1996 Thu Feb 29 17:32:01 1996 | @ 1 min | Thu Feb 29 17:33:01 1996 | Thu Feb 29 17:31:01 1996
...@@ -940,12 +940,12 @@ SELECT t.d1 AS t, i.f1 AS i, t.d1 + i.f1 AS "add", t.d1 - i.f1 AS "subtract" ...@@ -940,12 +940,12 @@ SELECT t.d1 AS t, i.f1 AS i, t.d1 + i.f1 AS "add", t.d1 - i.f1 AS "subtract"
Mon Feb 10 17:32:01 1997 | @ 5 hours | Mon Feb 10 22:32:01 1997 | Mon Feb 10 12:32:01 1997 Mon Feb 10 17:32:01 1997 | @ 5 hours | Mon Feb 10 22:32:01 1997 | Mon Feb 10 12:32:01 1997
Mon Feb 10 17:32:01 1997 | @ 5 hours | Mon Feb 10 22:32:01 1997 | Mon Feb 10 12:32:01 1997 Mon Feb 10 17:32:01 1997 | @ 5 hours | Mon Feb 10 22:32:01 1997 | Mon Feb 10 12:32:01 1997
Mon Feb 10 17:32:01 1997 | @ 5 hours | Mon Feb 10 22:32:01 1997 | Mon Feb 10 12:32:01 1997 Mon Feb 10 17:32:01 1997 | @ 5 hours | Mon Feb 10 22:32:01 1997 | Mon Feb 10 12:32:01 1997
Mon Feb 10 17:32:01.40 1997 | @ 1 min | Mon Feb 10 17:33:01.40 1997 | Mon Feb 10 17:31:01.40 1997 Mon Feb 10 17:32:01.4 1997 | @ 1 min | Mon Feb 10 17:33:01.4 1997 | Mon Feb 10 17:31:01.4 1997
Mon Feb 10 17:32:01.40 1997 | @ 5 hours | Mon Feb 10 22:32:01.40 1997 | Mon Feb 10 12:32:01.40 1997 Mon Feb 10 17:32:01.4 1997 | @ 5 hours | Mon Feb 10 22:32:01.4 1997 | Mon Feb 10 12:32:01.4 1997
Mon Feb 10 17:32:01.50 1997 | @ 1 min | Mon Feb 10 17:33:01.50 1997 | Mon Feb 10 17:31:01.50 1997 Mon Feb 10 17:32:01.5 1997 | @ 1 min | Mon Feb 10 17:33:01.5 1997 | Mon Feb 10 17:31:01.5 1997
Mon Feb 10 17:32:01.50 1997 | @ 5 hours | Mon Feb 10 22:32:01.50 1997 | Mon Feb 10 12:32:01.50 1997 Mon Feb 10 17:32:01.5 1997 | @ 5 hours | Mon Feb 10 22:32:01.5 1997 | Mon Feb 10 12:32:01.5 1997
Mon Feb 10 17:32:01.60 1997 | @ 1 min | Mon Feb 10 17:33:01.60 1997 | Mon Feb 10 17:31:01.60 1997 Mon Feb 10 17:32:01.6 1997 | @ 1 min | Mon Feb 10 17:33:01.6 1997 | Mon Feb 10 17:31:01.6 1997
Mon Feb 10 17:32:01.60 1997 | @ 5 hours | Mon Feb 10 22:32:01.60 1997 | Mon Feb 10 12:32:01.60 1997 Mon Feb 10 17:32:01.6 1997 | @ 5 hours | Mon Feb 10 22:32:01.6 1997 | Mon Feb 10 12:32:01.6 1997
Mon Feb 10 17:32:02 1997 | @ 1 min | Mon Feb 10 17:33:02 1997 | Mon Feb 10 17:31:02 1997 Mon Feb 10 17:32:02 1997 | @ 1 min | Mon Feb 10 17:33:02 1997 | Mon Feb 10 17:31:02 1997
Mon Feb 10 17:32:02 1997 | @ 5 hours | Mon Feb 10 22:32:02 1997 | Mon Feb 10 12:32:02 1997 Mon Feb 10 17:32:02 1997 | @ 5 hours | Mon Feb 10 22:32:02 1997 | Mon Feb 10 12:32:02 1997
Tue Feb 11 17:32:01 1997 | @ 1 min | Tue Feb 11 17:33:01 1997 | Tue Feb 11 17:31:01 1997 Tue Feb 11 17:32:01 1997 | @ 1 min | Tue Feb 11 17:33:01 1997 | Tue Feb 11 17:31:01 1997
...@@ -2182,9 +2182,9 @@ SELECT '' AS "64", d1 AS us_postgres FROM TIMESTAMP_TBL; ...@@ -2182,9 +2182,9 @@ SELECT '' AS "64", d1 AS us_postgres FROM TIMESTAMP_TBL;
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:02 1997 | Mon Feb 10 17:32:02 1997
| Mon Feb 10 17:32:01.40 1997 | Mon Feb 10 17:32:01.4 1997
| Mon Feb 10 17:32:01.50 1997 | Mon Feb 10 17:32:01.5 1997
| Mon Feb 10 17:32:01.60 1997 | Mon Feb 10 17:32:01.6 1997
| Thu Jan 02 00:00:00 1997 | Thu Jan 02 00:00:00 1997
| Thu Jan 02 03:04:05 1997 | Thu Jan 02 03:04:05 1997
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
...@@ -2265,9 +2265,9 @@ SELECT '' AS "64", d1 AS us_iso FROM TIMESTAMP_TBL; ...@@ -2265,9 +2265,9 @@ SELECT '' AS "64", d1 AS us_iso FROM TIMESTAMP_TBL;
| 1997-02-10 17:32:01 | 1997-02-10 17:32:01
| 1997-02-10 17:32:01 | 1997-02-10 17:32:01
| 1997-02-10 17:32:02 | 1997-02-10 17:32:02
| 1997-02-10 17:32:01.40 | 1997-02-10 17:32:01.4
| 1997-02-10 17:32:01.50 | 1997-02-10 17:32:01.5
| 1997-02-10 17:32:01.60 | 1997-02-10 17:32:01.6
| 1997-01-02 00:00:00 | 1997-01-02 00:00:00
| 1997-01-02 03:04:05 | 1997-01-02 03:04:05
| 1997-02-10 17:32:01 | 1997-02-10 17:32:01
...@@ -2354,9 +2354,9 @@ SELECT '' AS "64", d1 AS us_sql FROM TIMESTAMP_TBL; ...@@ -2354,9 +2354,9 @@ SELECT '' AS "64", d1 AS us_sql FROM TIMESTAMP_TBL;
| 02/10/1997 17:32:01 | 02/10/1997 17:32:01
| 02/10/1997 17:32:01 | 02/10/1997 17:32:01
| 02/10/1997 17:32:02 | 02/10/1997 17:32:02
| 02/10/1997 17:32:01.40 | 02/10/1997 17:32:01.4
| 02/10/1997 17:32:01.50 | 02/10/1997 17:32:01.5
| 02/10/1997 17:32:01.60 | 02/10/1997 17:32:01.6
| 01/02/1997 00:00:00 | 01/02/1997 00:00:00
| 01/02/1997 03:04:05 | 01/02/1997 03:04:05
| 02/10/1997 17:32:01 | 02/10/1997 17:32:01
...@@ -2450,9 +2450,9 @@ SELECT '' AS "65", d1 AS european_postgres FROM TIMESTAMP_TBL; ...@@ -2450,9 +2450,9 @@ SELECT '' AS "65", d1 AS european_postgres FROM TIMESTAMP_TBL;
| Mon 10 Feb 17:32:01 1997 | Mon 10 Feb 17:32:01 1997
| Mon 10 Feb 17:32:01 1997 | Mon 10 Feb 17:32:01 1997
| Mon 10 Feb 17:32:02 1997 | Mon 10 Feb 17:32:02 1997
| Mon 10 Feb 17:32:01.40 1997 | Mon 10 Feb 17:32:01.4 1997
| Mon 10 Feb 17:32:01.50 1997 | Mon 10 Feb 17:32:01.5 1997
| Mon 10 Feb 17:32:01.60 1997 | Mon 10 Feb 17:32:01.6 1997
| Thu 02 Jan 00:00:00 1997 | Thu 02 Jan 00:00:00 1997
| Thu 02 Jan 03:04:05 1997 | Thu 02 Jan 03:04:05 1997
| Mon 10 Feb 17:32:01 1997 | Mon 10 Feb 17:32:01 1997
...@@ -2540,9 +2540,9 @@ SELECT '' AS "65", d1 AS european_iso FROM TIMESTAMP_TBL; ...@@ -2540,9 +2540,9 @@ SELECT '' AS "65", d1 AS european_iso FROM TIMESTAMP_TBL;
| 1997-02-10 17:32:01 | 1997-02-10 17:32:01
| 1997-02-10 17:32:01 | 1997-02-10 17:32:01
| 1997-02-10 17:32:02 | 1997-02-10 17:32:02
| 1997-02-10 17:32:01.40 | 1997-02-10 17:32:01.4
| 1997-02-10 17:32:01.50 | 1997-02-10 17:32:01.5
| 1997-02-10 17:32:01.60 | 1997-02-10 17:32:01.6
| 1997-01-02 00:00:00 | 1997-01-02 00:00:00
| 1997-01-02 03:04:05 | 1997-01-02 03:04:05
| 1997-02-10 17:32:01 | 1997-02-10 17:32:01
...@@ -2630,9 +2630,9 @@ SELECT '' AS "65", d1 AS european_sql FROM TIMESTAMP_TBL; ...@@ -2630,9 +2630,9 @@ SELECT '' AS "65", d1 AS european_sql FROM TIMESTAMP_TBL;
| 10/02/1997 17:32:01 | 10/02/1997 17:32:01
| 10/02/1997 17:32:01 | 10/02/1997 17:32:01
| 10/02/1997 17:32:02 | 10/02/1997 17:32:02
| 10/02/1997 17:32:01.40 | 10/02/1997 17:32:01.4
| 10/02/1997 17:32:01.50 | 10/02/1997 17:32:01.5
| 10/02/1997 17:32:01.60 | 10/02/1997 17:32:01.6
| 02/01/1997 00:00:00 | 02/01/1997 00:00:00
| 02/01/1997 03:04:05 | 02/01/1997 03:04:05
| 10/02/1997 17:32:01 | 10/02/1997 17:32:01
......
...@@ -223,7 +223,7 @@ FROM INTERVAL_MULDIV_TBL; ...@@ -223,7 +223,7 @@ FROM INTERVAL_MULDIV_TBL;
1 year 12 days 122:24:00 1 year 12 days 122:24:00
-1 years -12 days +93:36:00 -1 years -12 days +93:36:00
-3 days -14:24:00 -3 days -14:24:00
2 mons 13 days 01:22:28.80 2 mons 13 days 01:22:28.8
-10 mons +120 days 37:28:21.6567 -10 mons +120 days 37:28:21.6567
1 mon 6 days 1 mon 6 days
4 mons 6 days 4 mons 6 days
...@@ -237,7 +237,7 @@ FROM INTERVAL_MULDIV_TBL; ...@@ -237,7 +237,7 @@ FROM INTERVAL_MULDIV_TBL;
28 years 104 days 2961:36:00 28 years 104 days 2961:36:00
-28 years -104 days +2942:24:00 -28 years -104 days +2942:24:00
-98 days -09:36:00 -98 days -09:36:00
6 years 1 mon -197 days +93:34:27.20 6 years 1 mon -197 days +93:34:27.2
-24 years -7 mons +3946 days 640:15:11.9498 -24 years -7 mons +3946 days 640:15:11.9498
2 years 8 mons 24 days 2 years 8 mons 24 days
9 years 6 mons 24 days 9 years 6 mons 24 days
...@@ -251,7 +251,7 @@ FROM INTERVAL_MULDIV_TBL; ...@@ -251,7 +251,7 @@ FROM INTERVAL_MULDIV_TBL;
4 mons 4 days 40:48:00 4 mons 4 days 40:48:00
-4 mons -4 days +31:12:00 -4 mons -4 days +31:12:00
-1 days -04:48:00 -1 days -04:48:00
25 days -15:32:30.40 25 days -15:32:30.4
-3 mons +30 days 12:29:27.2189 -3 mons +30 days 12:29:27.2189
12 days 12 days
1 mon 12 days 1 mon 12 days
...@@ -656,8 +656,8 @@ select interval '0' AS "zero", ...@@ -656,8 +656,8 @@ select interval '0' AS "zero",
(interval '1-2' - interval '3 4:05:06.7') AS "mixed sign", (interval '1-2' - interval '3 4:05:06.7') AS "mixed sign",
(- interval '1-2' + interval '3 4:05:06.7') AS "negative"; (- interval '1-2' + interval '3 4:05:06.7') AS "negative";
zero | a year 2 months | a bit over a day | a bit over 2 hours | all fields | mixed sign | negative zero | a year 2 months | a bit over a day | a bit over 2 hours | all fields | mixed sign | negative
------+-----------------+------------------+--------------------+-------------------+-----------------------+--------------------- ------+-----------------+------------------+--------------------+------------------+----------------------+--------------------
PT0S | P1Y2M | P1DT2H3M4S | PT2H3M4.45679S | P1Y2M3DT4H5M6.70S | P1Y2M-3DT-4H-5M-6.70S | P-1Y-2M3DT4H5M6.70S PT0S | P1Y2M | P1DT2H3M4S | PT2H3M4.45679S | P1Y2M3DT4H5M6.7S | P1Y2M-3DT-4H-5M-6.7S | P-1Y-2M3DT4H5M6.7S
(1 row) (1 row)
-- test inputting ISO 8601 4.4.2.1 "Format With Time Unit Designators" -- test inputting ISO 8601 4.4.2.1 "Format With Time Unit Designators"
...@@ -670,8 +670,8 @@ select interval 'P0Y' AS "zero", ...@@ -670,8 +670,8 @@ select interval 'P0Y' AS "zero",
interval 'P-1Y-2M-3DT-4H-5M-6.7S' AS "negative", interval 'P-1Y-2M-3DT-4H-5M-6.7S' AS "negative",
interval 'PT-0.1S' AS "fractional second"; interval 'PT-0.1S' AS "fractional second";
zero | a year 2 months | a week | a bit over a day | all fields | negative | fractional second zero | a year 2 months | a week | a bit over a day | all fields | negative | fractional second
------+-----------------+-----------+------------------+---------------------+---------------------+------------------- ------+-----------------+-----------+------------------+--------------------+--------------------+-------------------
0 | 1-2 | 7 0:00:00 | 1 2:03:04 | +1-2 +3 +4:05:06.70 | -1-2 -3 -4:05:06.70 | -0:00:00.10 0 | 1-2 | 7 0:00:00 | 1 2:03:04 | +1-2 +3 +4:05:06.7 | -1-2 -3 -4:05:06.7 | -0:00:00.1
(1 row) (1 row)
-- test inputting ISO 8601 4.4.2.2 "Alternative Format" -- test inputting ISO 8601 4.4.2.2 "Alternative Format"
...@@ -697,3 +697,23 @@ select interval 'P0002' AS "year only", ...@@ -697,3 +697,23 @@ select interval 'P0002' AS "year only",
2 years | 2 years 10 mons | 2 years 10 mons 15 days | 2 years 00:00:01 | 2 years 10 mons 00:00:01 | 2 years 10 mons 15 days 00:00:01 | 10:00:00 | 10:30:00 2 years | 2 years 10 mons | 2 years 10 mons 15 days | 2 years 00:00:01 | 2 years 10 mons 00:00:01 | 2 years 10 mons 15 days 00:00:01 | 10:00:00 | 10:30:00
(1 row) (1 row)
-- test a couple rounding cases that changed since 8.3 w/ HAVE_INT64_TIMESTAMP.
SET IntervalStyle to postgres_verbose;
select interval '-10 mons -3 days +03:55:06.70';
interval
--------------------------------------------------
@ 10 mons 3 days -3 hours -55 mins -6.7 secs ago
(1 row)
select interval '1 year 2 mons 3 days 04:05:06.699999';
interval
-----------------------------------------------------
@ 1 year 2 mons 3 days 4 hours 5 mins 6.699999 secs
(1 row)
select interval '0:0:0.7', interval '@ 0.70 secs', interval '0.7 seconds';
interval | interval | interval
------------+------------+------------
@ 0.7 secs | @ 0.7 secs | @ 0.7 secs
(1 row)
...@@ -193,9 +193,9 @@ SELECT '' AS "64", d1 FROM TIMESTAMP_TBL; ...@@ -193,9 +193,9 @@ SELECT '' AS "64", d1 FROM TIMESTAMP_TBL;
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:02 1997 | Mon Feb 10 17:32:02 1997
| Mon Feb 10 17:32:01.40 1997 | Mon Feb 10 17:32:01.4 1997
| Mon Feb 10 17:32:01.50 1997 | Mon Feb 10 17:32:01.5 1997
| Mon Feb 10 17:32:01.60 1997 | Mon Feb 10 17:32:01.6 1997
| Thu Jan 02 00:00:00 1997 | Thu Jan 02 00:00:00 1997
| Thu Jan 02 03:04:05 1997 | Thu Jan 02 03:04:05 1997
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
...@@ -258,14 +258,14 @@ SELECT '' AS "64", d1 FROM TIMESTAMP_TBL; ...@@ -258,14 +258,14 @@ SELECT '' AS "64", d1 FROM TIMESTAMP_TBL;
SELECT '' AS "48", d1 FROM TIMESTAMP_TBL SELECT '' AS "48", d1 FROM TIMESTAMP_TBL
WHERE d1 > timestamp without time zone '1997-01-02'; WHERE d1 > timestamp without time zone '1997-01-02';
48 | d1 48 | d1
----+----------------------------- ----+----------------------------
| infinity | infinity
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:02 1997 | Mon Feb 10 17:32:02 1997
| Mon Feb 10 17:32:01.40 1997 | Mon Feb 10 17:32:01.4 1997
| Mon Feb 10 17:32:01.50 1997 | Mon Feb 10 17:32:01.5 1997
| Mon Feb 10 17:32:01.60 1997 | Mon Feb 10 17:32:01.6 1997
| Thu Jan 02 03:04:05 1997 | Thu Jan 02 03:04:05 1997
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
...@@ -348,9 +348,9 @@ SELECT '' AS "63", d1 FROM TIMESTAMP_TBL ...@@ -348,9 +348,9 @@ SELECT '' AS "63", d1 FROM TIMESTAMP_TBL
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:02 1997 | Mon Feb 10 17:32:02 1997
| Mon Feb 10 17:32:01.40 1997 | Mon Feb 10 17:32:01.4 1997
| Mon Feb 10 17:32:01.50 1997 | Mon Feb 10 17:32:01.5 1997
| Mon Feb 10 17:32:01.60 1997 | Mon Feb 10 17:32:01.6 1997
| Thu Jan 02 03:04:05 1997 | Thu Jan 02 03:04:05 1997
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
...@@ -433,14 +433,14 @@ SELECT '' AS "16", d1 FROM TIMESTAMP_TBL ...@@ -433,14 +433,14 @@ SELECT '' AS "16", d1 FROM TIMESTAMP_TBL
SELECT '' AS "49", d1 FROM TIMESTAMP_TBL SELECT '' AS "49", d1 FROM TIMESTAMP_TBL
WHERE d1 >= timestamp without time zone '1997-01-02'; WHERE d1 >= timestamp without time zone '1997-01-02';
49 | d1 49 | d1
----+----------------------------- ----+----------------------------
| infinity | infinity
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
| Mon Feb 10 17:32:02 1997 | Mon Feb 10 17:32:02 1997
| Mon Feb 10 17:32:01.40 1997 | Mon Feb 10 17:32:01.4 1997
| Mon Feb 10 17:32:01.50 1997 | Mon Feb 10 17:32:01.5 1997
| Mon Feb 10 17:32:01.60 1997 | Mon Feb 10 17:32:01.6 1997
| Thu Jan 02 00:00:00 1997 | Thu Jan 02 00:00:00 1997
| Thu Jan 02 03:04:05 1997 | Thu Jan 02 03:04:05 1997
| Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997
...@@ -494,9 +494,9 @@ SELECT '' AS "54", d1 - timestamp without time zone '1997-01-02' AS diff ...@@ -494,9 +494,9 @@ SELECT '' AS "54", d1 - timestamp without time zone '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 2 secs | @ 39 days 17 hours 32 mins 2 secs
| @ 39 days 17 hours 32 mins 1.40 secs | @ 39 days 17 hours 32 mins 1.4 secs
| @ 39 days 17 hours 32 mins 1.50 secs | @ 39 days 17 hours 32 mins 1.5 secs
| @ 39 days 17 hours 32 mins 1.60 secs | @ 39 days 17 hours 32 mins 1.6 secs
| @ 0 | @ 0
| @ 3 hours 4 mins 5 secs | @ 3 hours 4 mins 5 secs
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
...@@ -564,9 +564,9 @@ SELECT '' AS "54", d1 - timestamp without time zone '1997-01-02' AS diff ...@@ -564,9 +564,9 @@ SELECT '' AS "54", d1 - timestamp without time zone '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 2 secs | @ 39 days 17 hours 32 mins 2 secs
| @ 39 days 17 hours 32 mins 1.40 secs | @ 39 days 17 hours 32 mins 1.4 secs
| @ 39 days 17 hours 32 mins 1.50 secs | @ 39 days 17 hours 32 mins 1.5 secs
| @ 39 days 17 hours 32 mins 1.60 secs | @ 39 days 17 hours 32 mins 1.6 secs
| @ 0 | @ 0
| @ 3 hours 4 mins 5 secs | @ 3 hours 4 mins 5 secs
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
...@@ -623,14 +623,14 @@ SELECT '' AS "54", d1 as "timestamp", ...@@ -623,14 +623,14 @@ SELECT '' AS "54", d1 as "timestamp",
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';
54 | timestamp | year | month | day | hour | minute | second 54 | timestamp | year | month | day | hour | minute | second
----+-----------------------------+------+-------+-----+------+--------+-------- ----+----------------------------+------+-------+-----+------+--------+--------
| Thu Jan 01 00:00:00 1970 | 1970 | 1 | 1 | 0 | 0 | 0 | Thu Jan 01 00:00:00 1970 | 1970 | 1 | 1 | 0 | 0 | 0
| Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1 | Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
| Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1 | Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
| Mon Feb 10 17:32:02 1997 | 1997 | 2 | 10 | 17 | 32 | 2 | Mon Feb 10 17:32:02 1997 | 1997 | 2 | 10 | 17 | 32 | 2
| Mon Feb 10 17:32:01.40 1997 | 1997 | 2 | 10 | 17 | 32 | 1.4 | Mon Feb 10 17:32:01.4 1997 | 1997 | 2 | 10 | 17 | 32 | 1.4
| Mon Feb 10 17:32:01.50 1997 | 1997 | 2 | 10 | 17 | 32 | 1.5 | Mon Feb 10 17:32:01.5 1997 | 1997 | 2 | 10 | 17 | 32 | 1.5
| Mon Feb 10 17:32:01.60 1997 | 1997 | 2 | 10 | 17 | 32 | 1.6 | Mon Feb 10 17:32:01.6 1997 | 1997 | 2 | 10 | 17 | 32 | 1.6
| Thu Jan 02 00:00:00 1997 | 1997 | 1 | 2 | 0 | 0 | 0 | Thu Jan 02 00:00:00 1997 | 1997 | 1 | 2 | 0 | 0 | 0
| Thu Jan 02 03:04:05 1997 | 1997 | 1 | 2 | 3 | 4 | 5 | Thu Jan 02 03:04:05 1997 | 1997 | 1 | 2 | 3 | 4 | 5
| Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1 | Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1
...@@ -686,14 +686,14 @@ SELECT '' AS "54", d1 as "timestamp", ...@@ -686,14 +686,14 @@ SELECT '' AS "54", d1 as "timestamp",
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';
54 | timestamp | quarter | msec | usec 54 | timestamp | quarter | msec | usec
----+-----------------------------+---------+-------+---------- ----+----------------------------+---------+-------+----------
| Thu Jan 01 00:00:00 1970 | 1 | 0 | 0 | Thu Jan 01 00:00:00 1970 | 1 | 0 | 0
| Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000 | Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
| Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000 | Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
| Mon Feb 10 17:32:02 1997 | 1 | 2000 | 2000000 | Mon Feb 10 17:32:02 1997 | 1 | 2000 | 2000000
| Mon Feb 10 17:32:01.40 1997 | 1 | 1400 | 1400000 | Mon Feb 10 17:32:01.4 1997 | 1 | 1400 | 1400000
| Mon Feb 10 17:32:01.50 1997 | 1 | 1500 | 1500000 | Mon Feb 10 17:32:01.5 1997 | 1 | 1500 | 1500000
| Mon Feb 10 17:32:01.60 1997 | 1 | 1600 | 1600000 | Mon Feb 10 17:32:01.6 1997 | 1 | 1600 | 1600000
| Thu Jan 02 00:00:00 1997 | 1 | 0 | 0 | Thu Jan 02 00:00:00 1997 | 1 | 0 | 0
| Thu Jan 02 03:04:05 1997 | 1 | 5000 | 5000000 | Thu Jan 02 03:04:05 1997 | 1 | 5000 | 5000000
| Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000 | Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000
...@@ -749,14 +749,14 @@ SELECT '' AS "54", d1 as "timestamp", ...@@ -749,14 +749,14 @@ SELECT '' AS "54", d1 as "timestamp",
date_part( 'dow', d1) AS dow date_part( 'dow', d1) AS dow
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';
54 | timestamp | isoyear | week | dow 54 | timestamp | isoyear | week | dow
----+-----------------------------+---------+------+----- ----+----------------------------+---------+------+-----
| Thu Jan 01 00:00:00 1970 | 1970 | 1 | 4 | Thu Jan 01 00:00:00 1970 | 1970 | 1 | 4
| Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1
| Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1
| Mon Feb 10 17:32:02 1997 | 1997 | 7 | 1 | Mon Feb 10 17:32:02 1997 | 1997 | 7 | 1
| Mon Feb 10 17:32:01.40 1997 | 1997 | 7 | 1 | Mon Feb 10 17:32:01.4 1997 | 1997 | 7 | 1
| Mon Feb 10 17:32:01.50 1997 | 1997 | 7 | 1 | Mon Feb 10 17:32:01.5 1997 | 1997 | 7 | 1
| Mon Feb 10 17:32:01.60 1997 | 1997 | 7 | 1 | Mon Feb 10 17:32:01.6 1997 | 1997 | 7 | 1
| Thu Jan 02 00:00:00 1997 | 1997 | 1 | 4 | Thu Jan 02 00:00:00 1997 | 1997 | 1 | 4
| Thu Jan 02 03:04:05 1997 | 1997 | 1 | 4 | Thu Jan 02 03:04:05 1997 | 1997 | 1 | 4
| Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1
......
...@@ -264,9 +264,9 @@ SELECT '' AS "64", d1 FROM TIMESTAMPTZ_TBL; ...@@ -264,9 +264,9 @@ SELECT '' AS "64", d1 FROM TIMESTAMPTZ_TBL;
| 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:02 1997 PST | Mon Feb 10 17:32:02 1997 PST
| Mon Feb 10 17:32:01.40 1997 PST | Mon Feb 10 17:32:01.4 1997 PST
| Mon Feb 10 17:32:01.50 1997 PST | Mon Feb 10 17:32:01.5 1997 PST
| Mon Feb 10 17:32:01.60 1997 PST | Mon Feb 10 17:32:01.6 1997 PST
| Thu Jan 02 00:00:00 1997 PST | Thu Jan 02 00:00:00 1997 PST
| Thu Jan 02 03:04:05 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
...@@ -330,14 +330,14 @@ SELECT '' AS "64", d1 FROM TIMESTAMPTZ_TBL; ...@@ -330,14 +330,14 @@ SELECT '' AS "64", d1 FROM TIMESTAMPTZ_TBL;
SELECT '' AS "48", d1 FROM TIMESTAMPTZ_TBL SELECT '' AS "48", d1 FROM TIMESTAMPTZ_TBL
WHERE d1 > timestamp with time zone '1997-01-02'; WHERE d1 > timestamp with time zone '1997-01-02';
48 | d1 48 | d1
----+--------------------------------- ----+--------------------------------
| infinity | infinity
| 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:02 1997 PST | Mon Feb 10 17:32:02 1997 PST
| Mon Feb 10 17:32:01.40 1997 PST | Mon Feb 10 17:32:01.4 1997 PST
| Mon Feb 10 17:32:01.50 1997 PST | Mon Feb 10 17:32:01.5 1997 PST
| Mon Feb 10 17:32:01.60 1997 PST | Mon Feb 10 17:32:01.6 1997 PST
| Thu Jan 02 03:04:05 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
...@@ -421,9 +421,9 @@ SELECT '' AS "63", d1 FROM TIMESTAMPTZ_TBL ...@@ -421,9 +421,9 @@ SELECT '' AS "63", d1 FROM TIMESTAMPTZ_TBL
| 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:02 1997 PST | Mon Feb 10 17:32:02 1997 PST
| Mon Feb 10 17:32:01.40 1997 PST | Mon Feb 10 17:32:01.4 1997 PST
| Mon Feb 10 17:32:01.50 1997 PST | Mon Feb 10 17:32:01.5 1997 PST
| Mon Feb 10 17:32:01.60 1997 PST | Mon Feb 10 17:32:01.6 1997 PST
| Thu Jan 02 03:04:05 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
...@@ -507,14 +507,14 @@ SELECT '' AS "16", d1 FROM TIMESTAMPTZ_TBL ...@@ -507,14 +507,14 @@ SELECT '' AS "16", d1 FROM TIMESTAMPTZ_TBL
SELECT '' AS "49", d1 FROM TIMESTAMPTZ_TBL SELECT '' AS "49", d1 FROM TIMESTAMPTZ_TBL
WHERE d1 >= timestamp with time zone '1997-01-02'; WHERE d1 >= timestamp with time zone '1997-01-02';
49 | d1 49 | d1
----+--------------------------------- ----+--------------------------------
| infinity | infinity
| 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:02 1997 PST | Mon Feb 10 17:32:02 1997 PST
| Mon Feb 10 17:32:01.40 1997 PST | Mon Feb 10 17:32:01.4 1997 PST
| Mon Feb 10 17:32:01.50 1997 PST | Mon Feb 10 17:32:01.5 1997 PST
| Mon Feb 10 17:32:01.60 1997 PST | Mon Feb 10 17:32:01.6 1997 PST
| Thu Jan 02 00:00:00 1997 PST | Thu Jan 02 00:00:00 1997 PST
| Thu Jan 02 03:04:05 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
...@@ -569,9 +569,9 @@ SELECT '' AS "54", d1 - timestamp with time zone '1997-01-02' AS diff ...@@ -569,9 +569,9 @@ SELECT '' AS "54", d1 - timestamp with time zone '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 2 secs | @ 39 days 17 hours 32 mins 2 secs
| @ 39 days 17 hours 32 mins 1.40 secs | @ 39 days 17 hours 32 mins 1.4 secs
| @ 39 days 17 hours 32 mins 1.50 secs | @ 39 days 17 hours 32 mins 1.5 secs
| @ 39 days 17 hours 32 mins 1.60 secs | @ 39 days 17 hours 32 mins 1.6 secs
| @ 0 | @ 0
| @ 3 hours 4 mins 5 secs | @ 3 hours 4 mins 5 secs
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
...@@ -639,9 +639,9 @@ SELECT '' AS "54", d1 - timestamp with time zone '1997-01-02' AS diff ...@@ -639,9 +639,9 @@ SELECT '' AS "54", d1 - timestamp with time zone '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 2 secs | @ 39 days 17 hours 32 mins 2 secs
| @ 39 days 17 hours 32 mins 1.40 secs | @ 39 days 17 hours 32 mins 1.4 secs
| @ 39 days 17 hours 32 mins 1.50 secs | @ 39 days 17 hours 32 mins 1.5 secs
| @ 39 days 17 hours 32 mins 1.60 secs | @ 39 days 17 hours 32 mins 1.6 secs
| @ 0 | @ 0
| @ 3 hours 4 mins 5 secs | @ 3 hours 4 mins 5 secs
| @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec
...@@ -699,14 +699,14 @@ SELECT '' AS "54", d1 as timestamptz, ...@@ -699,14 +699,14 @@ SELECT '' AS "54", d1 as timestamptz,
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 TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
54 | timestamptz | year | month | day | hour | minute | second 54 | timestamptz | year | month | day | hour | minute | second
----+---------------------------------+------+-------+-----+------+--------+-------- ----+--------------------------------+------+-------+-----+------+--------+--------
| Wed Dec 31 16:00:00 1969 PST | 1969 | 12 | 31 | 16 | 0 | 0 | Wed Dec 31 16:00:00 1969 PST | 1969 | 12 | 31 | 16 | 0 | 0
| Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1 | Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
| Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1 | Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
| Mon Feb 10 17:32:02 1997 PST | 1997 | 2 | 10 | 17 | 32 | 2 | Mon Feb 10 17:32:02 1997 PST | 1997 | 2 | 10 | 17 | 32 | 2
| Mon Feb 10 17:32:01.40 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1.4 | Mon Feb 10 17:32:01.4 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1.4
| Mon Feb 10 17:32:01.50 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1.5 | Mon Feb 10 17:32:01.5 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1.5
| Mon Feb 10 17:32:01.60 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1.6 | Mon Feb 10 17:32:01.6 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1.6
| Thu Jan 02 00:00:00 1997 PST | 1997 | 1 | 2 | 0 | 0 | 0 | Thu Jan 02 00:00:00 1997 PST | 1997 | 1 | 2 | 0 | 0 | 0
| Thu Jan 02 03:04:05 1997 PST | 1997 | 1 | 2 | 3 | 4 | 5 | Thu Jan 02 03:04:05 1997 PST | 1997 | 1 | 2 | 3 | 4 | 5
| Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1 | Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1
...@@ -763,14 +763,14 @@ SELECT '' AS "54", d1 as timestamptz, ...@@ -763,14 +763,14 @@ SELECT '' AS "54", d1 as timestamptz,
date_part( 'usec', d1) AS usec date_part( 'usec', d1) AS usec
FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
54 | timestamptz | quarter | msec | usec 54 | timestamptz | quarter | msec | usec
----+---------------------------------+---------+-------+---------- ----+--------------------------------+---------+-------+----------
| Wed Dec 31 16:00:00 1969 PST | 4 | 0 | 0 | Wed Dec 31 16:00:00 1969 PST | 4 | 0 | 0
| Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000 | Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
| Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000 | Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
| Mon Feb 10 17:32:02 1997 PST | 1 | 2000 | 2000000 | Mon Feb 10 17:32:02 1997 PST | 1 | 2000 | 2000000
| Mon Feb 10 17:32:01.40 1997 PST | 1 | 1400 | 1400000 | Mon Feb 10 17:32:01.4 1997 PST | 1 | 1400 | 1400000
| Mon Feb 10 17:32:01.50 1997 PST | 1 | 1500 | 1500000 | Mon Feb 10 17:32:01.5 1997 PST | 1 | 1500 | 1500000
| Mon Feb 10 17:32:01.60 1997 PST | 1 | 1600 | 1600000 | Mon Feb 10 17:32:01.6 1997 PST | 1 | 1600 | 1600000
| Thu Jan 02 00:00:00 1997 PST | 1 | 0 | 0 | Thu Jan 02 00:00:00 1997 PST | 1 | 0 | 0
| Thu Jan 02 03:04:05 1997 PST | 1 | 5000 | 5000000 | Thu Jan 02 03:04:05 1997 PST | 1 | 5000 | 5000000
| Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000 | Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000
...@@ -827,14 +827,14 @@ SELECT '' AS "54", d1 as timestamptz, ...@@ -827,14 +827,14 @@ SELECT '' AS "54", d1 as timestamptz,
date_part( 'dow', d1) AS dow date_part( 'dow', d1) AS dow
FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
54 | timestamptz | isoyear | week | dow 54 | timestamptz | isoyear | week | dow
----+---------------------------------+---------+------+----- ----+--------------------------------+---------+------+-----
| Wed Dec 31 16:00:00 1969 PST | 1970 | 1 | 3 | Wed Dec 31 16:00:00 1969 PST | 1970 | 1 | 3
| Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1
| Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1
| Mon Feb 10 17:32:02 1997 PST | 1997 | 7 | 1 | Mon Feb 10 17:32:02 1997 PST | 1997 | 7 | 1
| Mon Feb 10 17:32:01.40 1997 PST | 1997 | 7 | 1 | Mon Feb 10 17:32:01.4 1997 PST | 1997 | 7 | 1
| Mon Feb 10 17:32:01.50 1997 PST | 1997 | 7 | 1 | Mon Feb 10 17:32:01.5 1997 PST | 1997 | 7 | 1
| Mon Feb 10 17:32:01.60 1997 PST | 1997 | 7 | 1 | Mon Feb 10 17:32:01.6 1997 PST | 1997 | 7 | 1
| Thu Jan 02 00:00:00 1997 PST | 1997 | 1 | 4 | Thu Jan 02 00:00:00 1997 PST | 1997 | 1 | 4
| Thu Jan 02 03:04:05 1997 PST | 1997 | 1 | 4 | Thu Jan 02 03:04:05 1997 PST | 1997 | 1 | 4
| Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1
......
...@@ -235,3 +235,9 @@ select interval 'P0002' AS "year only", ...@@ -235,3 +235,9 @@ select interval 'P0002' AS "year only",
interval 'P0002-10-15T1S' AS "year month day plus time", interval 'P0002-10-15T1S' AS "year month day plus time",
interval 'PT10' AS "hour only", interval 'PT10' AS "hour only",
interval 'PT10:30' AS "hour minute"; interval 'PT10:30' AS "hour minute";
-- test a couple rounding cases that changed since 8.3 w/ HAVE_INT64_TIMESTAMP.
SET IntervalStyle to postgres_verbose;
select interval '-10 mons -3 days +03:55:06.70';
select interval '1 year 2 mons 3 days 04:05:06.699999';
select interval '0:0:0.7', interval '@ 0.70 secs', interval '0.7 seconds';
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