From 1165c28ed26c02da7e0127d2ea214528c76ecf2b Mon Sep 17 00:00:00 2001 From: xiangjinwu <17769960+xiangjinwu@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:02:15 +0800 Subject: [PATCH] test(regress): re-generate expected output using default DateStyle and IntervalStyle (#8386) --- src/tests/regress/data/expected/timestamp.out | 1495 +++++----- .../regress/data/expected/timestamptz.out | 2447 ++++++++--------- src/tests/regress/data/sql/timestamp.sql | 7 + src/tests/regress/data/sql/timestamptz.sql | 7 + 4 files changed, 1984 insertions(+), 1972 deletions(-) diff --git a/src/tests/regress/data/expected/timestamp.out b/src/tests/regress/data/expected/timestamp.out index 1a2d48cae9676..8171d52b88d9e 100644 --- a/src/tests/regress/data/expected/timestamp.out +++ b/src/tests/regress/data/expected/timestamp.out @@ -164,81 +164,83 @@ INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC'); ERROR: timestamp out of range: "Feb 16 17:32:01 5097 BC" LINE 1: INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC')... ^ +set datestyle to iso; +set intervalstyle to postgres; SELECT d1 FROM TIMESTAMP_TBL; - d1 ------------------------------ + d1 +------------------------ -infinity infinity - Thu Jan 01 00:00:00 1970 - 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:01.4 1997 - Mon Feb 10 17:32:01.5 1997 - Mon Feb 10 17:32:01.6 1997 - Thu Jan 02 00:00:00 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 - Tue Jun 10 17:32:01 1997 - Sat Sep 22 18:19:20 2001 - Wed Mar 15 08:14:01 2000 - Wed Mar 15 13:14:02 2000 - Wed Mar 15 12:14:03 2000 - Wed Mar 15 03:14:04 2000 - Wed Mar 15 02:14:05 2000 - Mon Feb 10 17:32:01 1997 - Mon Feb 10 17:32:01 1997 - Mon Feb 10 17:32:00 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 - 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:01 1997 - Tue Jun 10 18:32:01 1997 - Mon Feb 10 17:32:01 1997 - Tue Feb 11 17:32:01 1997 - Wed Feb 12 17:32:01 1997 - Thu Feb 13 17:32:01 1997 - Fri Feb 14 17:32:01 1997 - Sat Feb 15 17:32:01 1997 - Sun Feb 16 17:32:01 1997 - Tue Feb 16 17:32:01 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 - Sat Feb 16 17:32:01 2097 - Wed Feb 28 17:32:01 1996 - Thu Feb 29 17:32:01 1996 - Fri Mar 01 17:32:01 1996 - Mon Dec 30 17:32:01 1996 - Tue Dec 31 17:32:01 1996 - Wed Jan 01 17:32:01 1997 - Fri Feb 28 17:32:01 1997 - Sat Mar 01 17:32:01 1997 - Tue Dec 30 17:32:01 1997 - Wed Dec 31 17:32:01 1997 - Fri Dec 31 17:32:01 1999 - Sat Jan 01 17:32:01 2000 - Sun Dec 31 17:32:01 2000 - Mon Jan 01 17:32:01 2001 + 1970-01-01 00:00:00 + 1997-02-10 17:32:01 + 1997-02-10 17:32:01 + 1997-02-10 17:32:02 + 1997-02-10 17:32:01.4 + 1997-02-10 17:32:01.5 + 1997-02-10 17:32:01.6 + 1997-01-02 00:00:00 + 1997-01-02 03:04:05 + 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-06-10 17:32:01 + 2001-09-22 18:19:20 + 2000-03-15 08:14:01 + 2000-03-15 13:14:02 + 2000-03-15 12:14:03 + 2000-03-15 03:14:04 + 2000-03-15 02:14:05 + 1997-02-10 17:32:01 + 1997-02-10 17:32:01 + 1997-02-10 17:32:00 + 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:01 + 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-06-10 18:32:01 + 1997-02-10 17:32:01 + 1997-02-11 17:32:01 + 1997-02-12 17:32:01 + 1997-02-13 17:32:01 + 1997-02-14 17:32:01 + 1997-02-15 17:32:01 + 1997-02-16 17:32:01 + 0097-02-16 17:32:01 BC + 0097-02-16 17:32:01 + 0597-02-16 17:32:01 + 1097-02-16 17:32:01 + 1697-02-16 17:32:01 + 1797-02-16 17:32:01 + 1897-02-16 17:32:01 + 1997-02-16 17:32:01 + 2097-02-16 17:32:01 + 1996-02-28 17:32:01 + 1996-02-29 17:32:01 + 1996-03-01 17:32:01 + 1996-12-30 17:32:01 + 1996-12-31 17:32:01 + 1997-01-01 17:32:01 + 1997-02-28 17:32:01 + 1997-03-01 17:32:01 + 1997-12-30 17:32:01 + 1997-12-31 17:32:01 + 1999-12-31 17:32:01 + 2000-01-01 17:32:01 + 2000-12-31 17:32:01 + 2001-01-01 17:32:01 (65 rows) -- Check behavior at the boundaries of the timestamp range SELECT '4714-11-24 00:00:00 BC'::timestamp; - timestamp ------------------------------ - Mon Nov 24 00:00:00 4714 BC + timestamp +------------------------ + 4714-11-24 00:00:00 BC (1 row) SELECT '4714-11-23 23:59:59 BC'::timestamp; -- out of range @@ -246,9 +248,9 @@ ERROR: timestamp out of range: "4714-11-23 23:59:59 BC" LINE 1: SELECT '4714-11-23 23:59:59 BC'::timestamp; ^ SELECT '294276-12-31 23:59:59'::timestamp; - timestamp ----------------------------- - Sun Dec 31 23:59:59 294276 + timestamp +----------------------- + 294276-12-31 23:59:59 (1 row) SELECT '294277-01-01 00:00:00'::timestamp; -- out of range @@ -258,300 +260,300 @@ LINE 1: SELECT '294277-01-01 00:00:00'::timestamp; -- Demonstrate functions and operators SELECT d1 FROM TIMESTAMP_TBL WHERE d1 > timestamp without time zone '1997-01-02'; - d1 ----------------------------- + d1 +----------------------- infinity - 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:01.4 1997 - Mon Feb 10 17:32:01.5 1997 - Mon Feb 10 17:32:01.6 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 - Tue Jun 10 17:32:01 1997 - Sat Sep 22 18:19:20 2001 - Wed Mar 15 08:14:01 2000 - Wed Mar 15 13:14:02 2000 - Wed Mar 15 12:14:03 2000 - Wed Mar 15 03:14:04 2000 - Wed Mar 15 02:14:05 2000 - Mon Feb 10 17:32:01 1997 - Mon Feb 10 17:32:01 1997 - Mon Feb 10 17:32:00 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 - 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:01 1997 - Tue Jun 10 18:32:01 1997 - Mon Feb 10 17:32:01 1997 - Tue Feb 11 17:32:01 1997 - Wed Feb 12 17:32:01 1997 - Thu Feb 13 17:32:01 1997 - Fri Feb 14 17:32:01 1997 - Sat Feb 15 17:32:01 1997 - Sun Feb 16 17:32:01 1997 - Sun Feb 16 17:32:01 1997 - Sat Feb 16 17:32:01 2097 - Fri Feb 28 17:32:01 1997 - Sat Mar 01 17:32:01 1997 - Tue Dec 30 17:32:01 1997 - Wed Dec 31 17:32:01 1997 - Fri Dec 31 17:32:01 1999 - Sat Jan 01 17:32:01 2000 - Sun Dec 31 17:32:01 2000 - Mon Jan 01 17:32:01 2001 + 1997-02-10 17:32:01 + 1997-02-10 17:32:01 + 1997-02-10 17:32:02 + 1997-02-10 17:32:01.4 + 1997-02-10 17:32:01.5 + 1997-02-10 17:32:01.6 + 1997-01-02 03:04:05 + 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-06-10 17:32:01 + 2001-09-22 18:19:20 + 2000-03-15 08:14:01 + 2000-03-15 13:14:02 + 2000-03-15 12:14:03 + 2000-03-15 03:14:04 + 2000-03-15 02:14:05 + 1997-02-10 17:32:01 + 1997-02-10 17:32:01 + 1997-02-10 17:32:00 + 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:01 + 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-06-10 18:32:01 + 1997-02-10 17:32:01 + 1997-02-11 17:32:01 + 1997-02-12 17:32:01 + 1997-02-13 17:32:01 + 1997-02-14 17:32:01 + 1997-02-15 17:32:01 + 1997-02-16 17:32:01 + 1997-02-16 17:32:01 + 2097-02-16 17:32:01 + 1997-02-28 17:32:01 + 1997-03-01 17:32:01 + 1997-12-30 17:32:01 + 1997-12-31 17:32:01 + 1999-12-31 17:32:01 + 2000-01-01 17:32:01 + 2000-12-31 17:32:01 + 2001-01-01 17:32:01 (49 rows) SELECT d1 FROM TIMESTAMP_TBL WHERE d1 < timestamp without time zone '1997-01-02'; - d1 ------------------------------ + d1 +------------------------ -infinity - Thu Jan 01 00:00:00 1970 - Tue Feb 16 17:32:01 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 - Thu Feb 29 17:32:01 1996 - Fri Mar 01 17:32:01 1996 - Mon Dec 30 17:32:01 1996 - Tue Dec 31 17:32:01 1996 - Wed Jan 01 17:32:01 1997 + 1970-01-01 00:00:00 + 0097-02-16 17:32:01 BC + 0097-02-16 17:32:01 + 0597-02-16 17:32:01 + 1097-02-16 17:32:01 + 1697-02-16 17:32:01 + 1797-02-16 17:32:01 + 1897-02-16 17:32:01 + 1996-02-28 17:32:01 + 1996-02-29 17:32:01 + 1996-03-01 17:32:01 + 1996-12-30 17:32:01 + 1996-12-31 17:32:01 + 1997-01-01 17:32:01 (15 rows) SELECT d1 FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone '1997-01-02'; - d1 --------------------------- - Thu Jan 02 00:00:00 1997 + d1 +--------------------- + 1997-01-02 00:00:00 (1 row) SELECT d1 FROM TIMESTAMP_TBL WHERE d1 != timestamp without time zone '1997-01-02'; - d1 ------------------------------ + d1 +------------------------ -infinity infinity - Thu Jan 01 00:00:00 1970 - 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:01.4 1997 - Mon Feb 10 17:32:01.5 1997 - Mon Feb 10 17:32:01.6 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 - Tue Jun 10 17:32:01 1997 - Sat Sep 22 18:19:20 2001 - Wed Mar 15 08:14:01 2000 - Wed Mar 15 13:14:02 2000 - Wed Mar 15 12:14:03 2000 - Wed Mar 15 03:14:04 2000 - Wed Mar 15 02:14:05 2000 - Mon Feb 10 17:32:01 1997 - Mon Feb 10 17:32:01 1997 - Mon Feb 10 17:32:00 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 - 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:01 1997 - Tue Jun 10 18:32:01 1997 - Mon Feb 10 17:32:01 1997 - Tue Feb 11 17:32:01 1997 - Wed Feb 12 17:32:01 1997 - Thu Feb 13 17:32:01 1997 - Fri Feb 14 17:32:01 1997 - Sat Feb 15 17:32:01 1997 - Sun Feb 16 17:32:01 1997 - Tue Feb 16 17:32:01 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 - Sat Feb 16 17:32:01 2097 - Wed Feb 28 17:32:01 1996 - Thu Feb 29 17:32:01 1996 - Fri Mar 01 17:32:01 1996 - Mon Dec 30 17:32:01 1996 - Tue Dec 31 17:32:01 1996 - Wed Jan 01 17:32:01 1997 - Fri Feb 28 17:32:01 1997 - Sat Mar 01 17:32:01 1997 - Tue Dec 30 17:32:01 1997 - Wed Dec 31 17:32:01 1997 - Fri Dec 31 17:32:01 1999 - Sat Jan 01 17:32:01 2000 - Sun Dec 31 17:32:01 2000 - Mon Jan 01 17:32:01 2001 + 1970-01-01 00:00:00 + 1997-02-10 17:32:01 + 1997-02-10 17:32:01 + 1997-02-10 17:32:02 + 1997-02-10 17:32:01.4 + 1997-02-10 17:32:01.5 + 1997-02-10 17:32:01.6 + 1997-01-02 03:04:05 + 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-06-10 17:32:01 + 2001-09-22 18:19:20 + 2000-03-15 08:14:01 + 2000-03-15 13:14:02 + 2000-03-15 12:14:03 + 2000-03-15 03:14:04 + 2000-03-15 02:14:05 + 1997-02-10 17:32:01 + 1997-02-10 17:32:01 + 1997-02-10 17:32:00 + 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:01 + 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-06-10 18:32:01 + 1997-02-10 17:32:01 + 1997-02-11 17:32:01 + 1997-02-12 17:32:01 + 1997-02-13 17:32:01 + 1997-02-14 17:32:01 + 1997-02-15 17:32:01 + 1997-02-16 17:32:01 + 0097-02-16 17:32:01 BC + 0097-02-16 17:32:01 + 0597-02-16 17:32:01 + 1097-02-16 17:32:01 + 1697-02-16 17:32:01 + 1797-02-16 17:32:01 + 1897-02-16 17:32:01 + 1997-02-16 17:32:01 + 2097-02-16 17:32:01 + 1996-02-28 17:32:01 + 1996-02-29 17:32:01 + 1996-03-01 17:32:01 + 1996-12-30 17:32:01 + 1996-12-31 17:32:01 + 1997-01-01 17:32:01 + 1997-02-28 17:32:01 + 1997-03-01 17:32:01 + 1997-12-30 17:32:01 + 1997-12-31 17:32:01 + 1999-12-31 17:32:01 + 2000-01-01 17:32:01 + 2000-12-31 17:32:01 + 2001-01-01 17:32:01 (64 rows) SELECT d1 FROM TIMESTAMP_TBL WHERE d1 <= timestamp without time zone '1997-01-02'; - d1 ------------------------------ + d1 +------------------------ -infinity - Thu Jan 01 00:00:00 1970 - Thu Jan 02 00:00:00 1997 - Tue Feb 16 17:32:01 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 - Thu Feb 29 17:32:01 1996 - Fri Mar 01 17:32:01 1996 - Mon Dec 30 17:32:01 1996 - Tue Dec 31 17:32:01 1996 - Wed Jan 01 17:32:01 1997 + 1970-01-01 00:00:00 + 1997-01-02 00:00:00 + 0097-02-16 17:32:01 BC + 0097-02-16 17:32:01 + 0597-02-16 17:32:01 + 1097-02-16 17:32:01 + 1697-02-16 17:32:01 + 1797-02-16 17:32:01 + 1897-02-16 17:32:01 + 1996-02-28 17:32:01 + 1996-02-29 17:32:01 + 1996-03-01 17:32:01 + 1996-12-30 17:32:01 + 1996-12-31 17:32:01 + 1997-01-01 17:32:01 (16 rows) SELECT d1 FROM TIMESTAMP_TBL WHERE d1 >= timestamp without time zone '1997-01-02'; - d1 ----------------------------- + d1 +----------------------- infinity - 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:01.4 1997 - Mon Feb 10 17:32:01.5 1997 - Mon Feb 10 17:32:01.6 1997 - Thu Jan 02 00:00:00 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 - Tue Jun 10 17:32:01 1997 - Sat Sep 22 18:19:20 2001 - Wed Mar 15 08:14:01 2000 - Wed Mar 15 13:14:02 2000 - Wed Mar 15 12:14:03 2000 - Wed Mar 15 03:14:04 2000 - Wed Mar 15 02:14:05 2000 - Mon Feb 10 17:32:01 1997 - Mon Feb 10 17:32:01 1997 - Mon Feb 10 17:32:00 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 - 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:01 1997 - Tue Jun 10 18:32:01 1997 - Mon Feb 10 17:32:01 1997 - Tue Feb 11 17:32:01 1997 - Wed Feb 12 17:32:01 1997 - Thu Feb 13 17:32:01 1997 - Fri Feb 14 17:32:01 1997 - Sat Feb 15 17:32:01 1997 - Sun Feb 16 17:32:01 1997 - Sun Feb 16 17:32:01 1997 - Sat Feb 16 17:32:01 2097 - Fri Feb 28 17:32:01 1997 - Sat Mar 01 17:32:01 1997 - Tue Dec 30 17:32:01 1997 - Wed Dec 31 17:32:01 1997 - Fri Dec 31 17:32:01 1999 - Sat Jan 01 17:32:01 2000 - Sun Dec 31 17:32:01 2000 - Mon Jan 01 17:32:01 2001 + 1997-02-10 17:32:01 + 1997-02-10 17:32:01 + 1997-02-10 17:32:02 + 1997-02-10 17:32:01.4 + 1997-02-10 17:32:01.5 + 1997-02-10 17:32:01.6 + 1997-01-02 00:00:00 + 1997-01-02 03:04:05 + 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-06-10 17:32:01 + 2001-09-22 18:19:20 + 2000-03-15 08:14:01 + 2000-03-15 13:14:02 + 2000-03-15 12:14:03 + 2000-03-15 03:14:04 + 2000-03-15 02:14:05 + 1997-02-10 17:32:01 + 1997-02-10 17:32:01 + 1997-02-10 17:32:00 + 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:01 + 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-06-10 18:32:01 + 1997-02-10 17:32:01 + 1997-02-11 17:32:01 + 1997-02-12 17:32:01 + 1997-02-13 17:32:01 + 1997-02-14 17:32:01 + 1997-02-15 17:32:01 + 1997-02-16 17:32:01 + 1997-02-16 17:32:01 + 2097-02-16 17:32:01 + 1997-02-28 17:32:01 + 1997-03-01 17:32:01 + 1997-12-30 17:32:01 + 1997-12-31 17:32:01 + 1999-12-31 17:32:01 + 2000-01-01 17:32:01 + 2000-12-31 17:32:01 + 2001-01-01 17:32:01 (50 rows) SELECT d1 - timestamp without time zone '1997-01-02' AS diff FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; - diff ----------------------------------------- - @ 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 2 secs - @ 39 days 17 hours 32 mins 1.4 secs - @ 39 days 17 hours 32 mins 1.5 secs - @ 39 days 17 hours 32 mins 1.6 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 17 hours 32 mins 1 sec - @ 1724 days 18 hours 19 mins 20 secs - @ 1168 days 8 hours 14 mins 1 sec - @ 1168 days 13 hours 14 mins 2 secs - @ 1168 days 12 hours 14 mins 3 secs - @ 1168 days 3 hours 14 mins 4 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 - @ 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 17 hours 32 mins 1 sec - @ 39 days 17 hours 32 mins 1 sec - @ 39 days 17 hours 32 mins 1 sec - @ 159 days 18 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 + diff +--------------------- + -9863 days + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:02 + 39 days 17:32:01.4 + 39 days 17:32:01.5 + 39 days 17:32:01.6 + 00:00:00 + 03:04:05 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 159 days 17:32:01 + 1724 days 18:19:20 + 1168 days 08:14:01 + 1168 days 13:14:02 + 1168 days 12:14:03 + 1168 days 03:14:04 + 1168 days 02:14:05 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:00 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 159 days 18:32:01 + 39 days 17:32:01 + 40 days 17:32:01 + 41 days 17:32:01 + 42 days 17:32:01 + 43 days 17:32:01 + 44 days 17:32:01 + 45 days 17:32:01 + 45 days 17:32:01 + -308 days -06:27:59 + -307 days -06:27:59 + -306 days -06:27:59 + -2 days -06:27:59 + -1 days -06:27:59 + -06:27:59 + 57 days 17:32:01 + 58 days 17:32:01 + 362 days 17:32:01 + 363 days 17:32:01 + 1093 days 17:32:01 + 1094 days 17:32:01 + 1459 days 17:32:01 + 1460 days 17:32:01 (55 rows) SELECT date_trunc( 'week', timestamp '2004-02-29 15:44:17.71393' ) AS week_trunc; - week_trunc --------------------------- - Mon Feb 23 00:00:00 2004 + week_trunc +--------------------- + 2004-02-23 00:00:00 (1 row) -- verify date_bin behaves the same as date_trunc for relevant intervals @@ -681,22 +683,22 @@ FROM ( ) intervals (interval), (VALUES (timestamp '2020-02-11 15:44:17.71393')) ts (ts), (VALUES (timestamp '2001-01-01')) origin (origin); - interval | ts | origin | date_bin --------------------+--------------------------------+--------------------------+-------------------------------- - 15 days | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Thu Feb 06 00:00:00 2020 - 2 hours | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Tue Feb 11 14:00:00 2020 - 1 hour 30 minutes | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Tue Feb 11 15:00:00 2020 - 15 minutes | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Tue Feb 11 15:30:00 2020 - 10 seconds | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Tue Feb 11 15:44:10 2020 - 100 milliseconds | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Tue Feb 11 15:44:17.7 2020 - 250 microseconds | Tue Feb 11 15:44:17.71393 2020 | Mon Jan 01 00:00:00 2001 | Tue Feb 11 15:44:17.71375 2020 + interval | ts | origin | date_bin +-------------------+---------------------------+---------------------+--------------------------- + 15 days | 2020-02-11 15:44:17.71393 | 2001-01-01 00:00:00 | 2020-02-06 00:00:00 + 2 hours | 2020-02-11 15:44:17.71393 | 2001-01-01 00:00:00 | 2020-02-11 14:00:00 + 1 hour 30 minutes | 2020-02-11 15:44:17.71393 | 2001-01-01 00:00:00 | 2020-02-11 15:00:00 + 15 minutes | 2020-02-11 15:44:17.71393 | 2001-01-01 00:00:00 | 2020-02-11 15:30:00 + 10 seconds | 2020-02-11 15:44:17.71393 | 2001-01-01 00:00:00 | 2020-02-11 15:44:10 + 100 milliseconds | 2020-02-11 15:44:17.71393 | 2001-01-01 00:00:00 | 2020-02-11 15:44:17.7 + 250 microseconds | 2020-02-11 15:44:17.71393 | 2001-01-01 00:00:00 | 2020-02-11 15:44:17.71375 (7 rows) -- shift bins using the origin parameter: SELECT date_bin('5 min'::interval, timestamp '2020-02-01 01:01:01', timestamp '2020-02-01 00:02:30'); - date_bin --------------------------- - Sat Feb 01 00:57:30 2020 + date_bin +--------------------- + 2020-02-01 00:57:30 (1 row) -- disallow intervals with months or years @@ -704,74 +706,68 @@ SELECT date_bin('5 months'::interval, timestamp '2020-02-01 01:01:01', timestamp ERROR: timestamps cannot be binned into intervals containing months or years SELECT date_bin('5 years'::interval, timestamp '2020-02-01 01:01:01', timestamp '2001-01-01'); ERROR: timestamps cannot be binned into intervals containing months or years --- disallow zero intervals -SELECT date_bin('0 days'::interval, timestamp '1970-01-01 01:00:00' , timestamp '1970-01-01 00:00:00'); -ERROR: stride must be greater than zero --- disallow negative intervals -SELECT date_bin('-2 days'::interval, timestamp '1970-01-01 01:00:00' , timestamp '1970-01-01 00:00:00'); -ERROR: stride must be greater than zero -- Test casting within a BETWEEN qualifier SELECT d1 - timestamp without time zone '1997-01-02' AS diff FROM TIMESTAMP_TBL WHERE d1 BETWEEN timestamp without time zone '1902-01-01' AND timestamp without time zone '2038-01-01'; - diff ----------------------------------------- - @ 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 2 secs - @ 39 days 17 hours 32 mins 1.4 secs - @ 39 days 17 hours 32 mins 1.5 secs - @ 39 days 17 hours 32 mins 1.6 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 17 hours 32 mins 1 sec - @ 1724 days 18 hours 19 mins 20 secs - @ 1168 days 8 hours 14 mins 1 sec - @ 1168 days 13 hours 14 mins 2 secs - @ 1168 days 12 hours 14 mins 3 secs - @ 1168 days 3 hours 14 mins 4 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 - @ 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 17 hours 32 mins 1 sec - @ 39 days 17 hours 32 mins 1 sec - @ 39 days 17 hours 32 mins 1 sec - @ 159 days 18 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 + diff +--------------------- + -9863 days + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:02 + 39 days 17:32:01.4 + 39 days 17:32:01.5 + 39 days 17:32:01.6 + 00:00:00 + 03:04:05 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 159 days 17:32:01 + 1724 days 18:19:20 + 1168 days 08:14:01 + 1168 days 13:14:02 + 1168 days 12:14:03 + 1168 days 03:14:04 + 1168 days 02:14:05 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:00 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 159 days 18:32:01 + 39 days 17:32:01 + 40 days 17:32:01 + 41 days 17:32:01 + 42 days 17:32:01 + 43 days 17:32:01 + 44 days 17:32:01 + 45 days 17:32:01 + 45 days 17:32:01 + -308 days -06:27:59 + -307 days -06:27:59 + -306 days -06:27:59 + -2 days -06:27:59 + -1 days -06:27:59 + -06:27:59 + 57 days 17:32:01 + 58 days 17:32:01 + 362 days 17:32:01 + 363 days 17:32:01 + 1093 days 17:32:01 + 1094 days 17:32:01 + 1459 days 17:32:01 + 1460 days 17:32:01 (55 rows) -- DATE_PART (timestamp_part) @@ -780,146 +776,146 @@ SELECT d1 as "timestamp", 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 TIMESTAMP_TBL; - timestamp | year | month | day | hour | minute | second ------------------------------+-----------+-------+-----+------+--------+-------- - -infinity | -Infinity | | | | | - infinity | Infinity | | | | | - 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:02 1997 | 1997 | 2 | 10 | 17 | 32 | 2 - Mon Feb 10 17:32:01.4 1997 | 1997 | 2 | 10 | 17 | 32 | 1.4 - Mon Feb 10 17:32:01.5 1997 | 1997 | 2 | 10 | 17 | 32 | 1.5 - 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 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 - 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 - Tue Jun 10 17:32:01 1997 | 1997 | 6 | 10 | 17 | 32 | 1 - Sat Sep 22 18:19:20 2001 | 2001 | 9 | 22 | 18 | 19 | 20 - Wed Mar 15 08:14:01 2000 | 2000 | 3 | 15 | 8 | 14 | 1 - Wed Mar 15 13:14:02 2000 | 2000 | 3 | 15 | 13 | 14 | 2 - Wed Mar 15 12:14:03 2000 | 2000 | 3 | 15 | 12 | 14 | 3 - Wed Mar 15 03:14:04 2000 | 2000 | 3 | 15 | 3 | 14 | 4 - Wed Mar 15 02:14:05 2000 | 2000 | 3 | 15 | 2 | 14 | 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 - Mon Feb 10 17:32:00 1997 | 1997 | 2 | 10 | 17 | 32 | 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: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:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1 - Tue Jun 10 18:32:01 1997 | 1997 | 6 | 10 | 18 | 32 | 1 - Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1 - Tue Feb 11 17:32:01 1997 | 1997 | 2 | 11 | 17 | 32 | 1 - Wed Feb 12 17:32:01 1997 | 1997 | 2 | 12 | 17 | 32 | 1 - Thu Feb 13 17:32:01 1997 | 1997 | 2 | 13 | 17 | 32 | 1 - Fri Feb 14 17:32:01 1997 | 1997 | 2 | 14 | 17 | 32 | 1 - Sat Feb 15 17:32:01 1997 | 1997 | 2 | 15 | 17 | 32 | 1 - Sun Feb 16 17:32:01 1997 | 1997 | 2 | 16 | 17 | 32 | 1 - Tue Feb 16 17:32:01 0097 BC | -97 | 2 | 16 | 17 | 32 | 1 - Sat Feb 16 17:32:01 0097 | 97 | 2 | 16 | 17 | 32 | 1 - Thu Feb 16 17:32:01 0597 | 597 | 2 | 16 | 17 | 32 | 1 - Tue Feb 16 17:32:01 1097 | 1097 | 2 | 16 | 17 | 32 | 1 - Sat Feb 16 17:32:01 1697 | 1697 | 2 | 16 | 17 | 32 | 1 - Thu Feb 16 17:32:01 1797 | 1797 | 2 | 16 | 17 | 32 | 1 - Tue Feb 16 17:32:01 1897 | 1897 | 2 | 16 | 17 | 32 | 1 - Sun Feb 16 17:32:01 1997 | 1997 | 2 | 16 | 17 | 32 | 1 - Sat Feb 16 17:32:01 2097 | 2097 | 2 | 16 | 17 | 32 | 1 - Wed Feb 28 17:32:01 1996 | 1996 | 2 | 28 | 17 | 32 | 1 - Thu Feb 29 17:32:01 1996 | 1996 | 2 | 29 | 17 | 32 | 1 - Fri Mar 01 17:32:01 1996 | 1996 | 3 | 1 | 17 | 32 | 1 - Mon Dec 30 17:32:01 1996 | 1996 | 12 | 30 | 17 | 32 | 1 - Tue Dec 31 17:32:01 1996 | 1996 | 12 | 31 | 17 | 32 | 1 - Wed Jan 01 17:32:01 1997 | 1997 | 1 | 1 | 17 | 32 | 1 - Fri Feb 28 17:32:01 1997 | 1997 | 2 | 28 | 17 | 32 | 1 - Sat Mar 01 17:32:01 1997 | 1997 | 3 | 1 | 17 | 32 | 1 - Tue Dec 30 17:32:01 1997 | 1997 | 12 | 30 | 17 | 32 | 1 - Wed Dec 31 17:32:01 1997 | 1997 | 12 | 31 | 17 | 32 | 1 - Fri Dec 31 17:32:01 1999 | 1999 | 12 | 31 | 17 | 32 | 1 - Sat Jan 01 17:32:01 2000 | 2000 | 1 | 1 | 17 | 32 | 1 - Sun Dec 31 17:32:01 2000 | 2000 | 12 | 31 | 17 | 32 | 1 - Mon Jan 01 17:32:01 2001 | 2001 | 1 | 1 | 17 | 32 | 1 + timestamp | year | month | day | hour | minute | second +------------------------+-----------+-------+-----+------+--------+-------- + -infinity | -Infinity | | | | | + infinity | Infinity | | | | | + 1970-01-01 00:00:00 | 1970 | 1 | 1 | 0 | 0 | 0 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:02 | 1997 | 2 | 10 | 17 | 32 | 2 + 1997-02-10 17:32:01.4 | 1997 | 2 | 10 | 17 | 32 | 1.4 + 1997-02-10 17:32:01.5 | 1997 | 2 | 10 | 17 | 32 | 1.5 + 1997-02-10 17:32:01.6 | 1997 | 2 | 10 | 17 | 32 | 1.6 + 1997-01-02 00:00:00 | 1997 | 1 | 2 | 0 | 0 | 0 + 1997-01-02 03:04:05 | 1997 | 1 | 2 | 3 | 4 | 5 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-06-10 17:32:01 | 1997 | 6 | 10 | 17 | 32 | 1 + 2001-09-22 18:19:20 | 2001 | 9 | 22 | 18 | 19 | 20 + 2000-03-15 08:14:01 | 2000 | 3 | 15 | 8 | 14 | 1 + 2000-03-15 13:14:02 | 2000 | 3 | 15 | 13 | 14 | 2 + 2000-03-15 12:14:03 | 2000 | 3 | 15 | 12 | 14 | 3 + 2000-03-15 03:14:04 | 2000 | 3 | 15 | 3 | 14 | 4 + 2000-03-15 02:14:05 | 2000 | 3 | 15 | 2 | 14 | 5 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:00 | 1997 | 2 | 10 | 17 | 32 | 0 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-06-10 18:32:01 | 1997 | 6 | 10 | 18 | 32 | 1 + 1997-02-10 17:32:01 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-11 17:32:01 | 1997 | 2 | 11 | 17 | 32 | 1 + 1997-02-12 17:32:01 | 1997 | 2 | 12 | 17 | 32 | 1 + 1997-02-13 17:32:01 | 1997 | 2 | 13 | 17 | 32 | 1 + 1997-02-14 17:32:01 | 1997 | 2 | 14 | 17 | 32 | 1 + 1997-02-15 17:32:01 | 1997 | 2 | 15 | 17 | 32 | 1 + 1997-02-16 17:32:01 | 1997 | 2 | 16 | 17 | 32 | 1 + 0097-02-16 17:32:01 BC | -97 | 2 | 16 | 17 | 32 | 1 + 0097-02-16 17:32:01 | 97 | 2 | 16 | 17 | 32 | 1 + 0597-02-16 17:32:01 | 597 | 2 | 16 | 17 | 32 | 1 + 1097-02-16 17:32:01 | 1097 | 2 | 16 | 17 | 32 | 1 + 1697-02-16 17:32:01 | 1697 | 2 | 16 | 17 | 32 | 1 + 1797-02-16 17:32:01 | 1797 | 2 | 16 | 17 | 32 | 1 + 1897-02-16 17:32:01 | 1897 | 2 | 16 | 17 | 32 | 1 + 1997-02-16 17:32:01 | 1997 | 2 | 16 | 17 | 32 | 1 + 2097-02-16 17:32:01 | 2097 | 2 | 16 | 17 | 32 | 1 + 1996-02-28 17:32:01 | 1996 | 2 | 28 | 17 | 32 | 1 + 1996-02-29 17:32:01 | 1996 | 2 | 29 | 17 | 32 | 1 + 1996-03-01 17:32:01 | 1996 | 3 | 1 | 17 | 32 | 1 + 1996-12-30 17:32:01 | 1996 | 12 | 30 | 17 | 32 | 1 + 1996-12-31 17:32:01 | 1996 | 12 | 31 | 17 | 32 | 1 + 1997-01-01 17:32:01 | 1997 | 1 | 1 | 17 | 32 | 1 + 1997-02-28 17:32:01 | 1997 | 2 | 28 | 17 | 32 | 1 + 1997-03-01 17:32:01 | 1997 | 3 | 1 | 17 | 32 | 1 + 1997-12-30 17:32:01 | 1997 | 12 | 30 | 17 | 32 | 1 + 1997-12-31 17:32:01 | 1997 | 12 | 31 | 17 | 32 | 1 + 1999-12-31 17:32:01 | 1999 | 12 | 31 | 17 | 32 | 1 + 2000-01-01 17:32:01 | 2000 | 1 | 1 | 17 | 32 | 1 + 2000-12-31 17:32:01 | 2000 | 12 | 31 | 17 | 32 | 1 + 2001-01-01 17:32:01 | 2001 | 1 | 1 | 17 | 32 | 1 (65 rows) SELECT d1 as "timestamp", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec, date_part( 'usec', d1) AS usec FROM TIMESTAMP_TBL; - timestamp | quarter | msec | usec ------------------------------+---------+-------+---------- - -infinity | | | - infinity | | | - 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:02 1997 | 1 | 2000 | 2000000 - Mon Feb 10 17:32:01.4 1997 | 1 | 1400 | 1400000 - Mon Feb 10 17:32:01.5 1997 | 1 | 1500 | 1500000 - Mon Feb 10 17:32:01.6 1997 | 1 | 1600 | 1600000 - Thu Jan 02 00:00:00 1997 | 1 | 0 | 0 - 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 - Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000 - Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000 - Tue Jun 10 17:32:01 1997 | 2 | 1000 | 1000000 - Sat Sep 22 18:19:20 2001 | 3 | 20000 | 20000000 - Wed Mar 15 08:14:01 2000 | 1 | 1000 | 1000000 - Wed Mar 15 13:14:02 2000 | 1 | 2000 | 2000000 - Wed Mar 15 12:14:03 2000 | 1 | 3000 | 3000000 - Wed Mar 15 03:14:04 2000 | 1 | 4000 | 4000000 - Wed Mar 15 02:14:05 2000 | 1 | 5000 | 5000000 - 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:00 1997 | 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: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:01 1997 | 1 | 1000 | 1000000 - Tue Jun 10 18:32:01 1997 | 2 | 1000 | 1000000 - Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000 - Tue Feb 11 17:32:01 1997 | 1 | 1000 | 1000000 - Wed Feb 12 17:32:01 1997 | 1 | 1000 | 1000000 - Thu Feb 13 17:32:01 1997 | 1 | 1000 | 1000000 - Fri Feb 14 17:32:01 1997 | 1 | 1000 | 1000000 - Sat Feb 15 17:32:01 1997 | 1 | 1000 | 1000000 - Sun Feb 16 17:32:01 1997 | 1 | 1000 | 1000000 - Tue Feb 16 17:32:01 0097 BC | 1 | 1000 | 1000000 - Sat Feb 16 17:32:01 0097 | 1 | 1000 | 1000000 - Thu Feb 16 17:32:01 0597 | 1 | 1000 | 1000000 - Tue Feb 16 17:32:01 1097 | 1 | 1000 | 1000000 - Sat Feb 16 17:32:01 1697 | 1 | 1000 | 1000000 - Thu Feb 16 17:32:01 1797 | 1 | 1000 | 1000000 - Tue Feb 16 17:32:01 1897 | 1 | 1000 | 1000000 - Sun Feb 16 17:32:01 1997 | 1 | 1000 | 1000000 - Sat Feb 16 17:32:01 2097 | 1 | 1000 | 1000000 - Wed Feb 28 17:32:01 1996 | 1 | 1000 | 1000000 - Thu Feb 29 17:32:01 1996 | 1 | 1000 | 1000000 - Fri Mar 01 17:32:01 1996 | 1 | 1000 | 1000000 - Mon Dec 30 17:32:01 1996 | 4 | 1000 | 1000000 - Tue Dec 31 17:32:01 1996 | 4 | 1000 | 1000000 - Wed Jan 01 17:32:01 1997 | 1 | 1000 | 1000000 - Fri Feb 28 17:32:01 1997 | 1 | 1000 | 1000000 - Sat Mar 01 17:32:01 1997 | 1 | 1000 | 1000000 - Tue Dec 30 17:32:01 1997 | 4 | 1000 | 1000000 - Wed Dec 31 17:32:01 1997 | 4 | 1000 | 1000000 - Fri Dec 31 17:32:01 1999 | 4 | 1000 | 1000000 - Sat Jan 01 17:32:01 2000 | 1 | 1000 | 1000000 - Sun Dec 31 17:32:01 2000 | 4 | 1000 | 1000000 - Mon Jan 01 17:32:01 2001 | 1 | 1000 | 1000000 + timestamp | quarter | msec | usec +------------------------+---------+-------+---------- + -infinity | | | + infinity | | | + 1970-01-01 00:00:00 | 1 | 0 | 0 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:02 | 1 | 2000 | 2000000 + 1997-02-10 17:32:01.4 | 1 | 1400 | 1400000 + 1997-02-10 17:32:01.5 | 1 | 1500 | 1500000 + 1997-02-10 17:32:01.6 | 1 | 1600 | 1600000 + 1997-01-02 00:00:00 | 1 | 0 | 0 + 1997-01-02 03:04:05 | 1 | 5000 | 5000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-06-10 17:32:01 | 2 | 1000 | 1000000 + 2001-09-22 18:19:20 | 3 | 20000 | 20000000 + 2000-03-15 08:14:01 | 1 | 1000 | 1000000 + 2000-03-15 13:14:02 | 1 | 2000 | 2000000 + 2000-03-15 12:14:03 | 1 | 3000 | 3000000 + 2000-03-15 03:14:04 | 1 | 4000 | 4000000 + 2000-03-15 02:14:05 | 1 | 5000 | 5000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:00 | 1 | 0 | 0 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-06-10 18:32:01 | 2 | 1000 | 1000000 + 1997-02-10 17:32:01 | 1 | 1000 | 1000000 + 1997-02-11 17:32:01 | 1 | 1000 | 1000000 + 1997-02-12 17:32:01 | 1 | 1000 | 1000000 + 1997-02-13 17:32:01 | 1 | 1000 | 1000000 + 1997-02-14 17:32:01 | 1 | 1000 | 1000000 + 1997-02-15 17:32:01 | 1 | 1000 | 1000000 + 1997-02-16 17:32:01 | 1 | 1000 | 1000000 + 0097-02-16 17:32:01 BC | 1 | 1000 | 1000000 + 0097-02-16 17:32:01 | 1 | 1000 | 1000000 + 0597-02-16 17:32:01 | 1 | 1000 | 1000000 + 1097-02-16 17:32:01 | 1 | 1000 | 1000000 + 1697-02-16 17:32:01 | 1 | 1000 | 1000000 + 1797-02-16 17:32:01 | 1 | 1000 | 1000000 + 1897-02-16 17:32:01 | 1 | 1000 | 1000000 + 1997-02-16 17:32:01 | 1 | 1000 | 1000000 + 2097-02-16 17:32:01 | 1 | 1000 | 1000000 + 1996-02-28 17:32:01 | 1 | 1000 | 1000000 + 1996-02-29 17:32:01 | 1 | 1000 | 1000000 + 1996-03-01 17:32:01 | 1 | 1000 | 1000000 + 1996-12-30 17:32:01 | 4 | 1000 | 1000000 + 1996-12-31 17:32:01 | 4 | 1000 | 1000000 + 1997-01-01 17:32:01 | 1 | 1000 | 1000000 + 1997-02-28 17:32:01 | 1 | 1000 | 1000000 + 1997-03-01 17:32:01 | 1 | 1000 | 1000000 + 1997-12-30 17:32:01 | 4 | 1000 | 1000000 + 1997-12-31 17:32:01 | 4 | 1000 | 1000000 + 1999-12-31 17:32:01 | 4 | 1000 | 1000000 + 2000-01-01 17:32:01 | 1 | 1000 | 1000000 + 2000-12-31 17:32:01 | 4 | 1000 | 1000000 + 2001-01-01 17:32:01 | 1 | 1000 | 1000000 (65 rows) SELECT d1 as "timestamp", @@ -927,73 +923,73 @@ SELECT d1 as "timestamp", date_part( 'isodow', d1) AS isodow, date_part( 'dow', d1) AS dow, date_part( 'doy', d1) AS doy FROM TIMESTAMP_TBL; - timestamp | isoyear | week | isodow | dow | doy ------------------------------+-----------+------+--------+-----+----- - -infinity | -Infinity | | | | - infinity | Infinity | | | | - Thu Jan 01 00:00:00 1970 | 1970 | 1 | 4 | 4 | 1 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:02 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01.4 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01.5 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01.6 1997 | 1997 | 7 | 1 | 1 | 41 - Thu Jan 02 00:00:00 1997 | 1997 | 1 | 4 | 4 | 2 - Thu Jan 02 03:04:05 1997 | 1997 | 1 | 4 | 4 | 2 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Tue Jun 10 17:32:01 1997 | 1997 | 24 | 2 | 2 | 161 - Sat Sep 22 18:19:20 2001 | 2001 | 38 | 6 | 6 | 265 - Wed Mar 15 08:14:01 2000 | 2000 | 11 | 3 | 3 | 75 - Wed Mar 15 13:14:02 2000 | 2000 | 11 | 3 | 3 | 75 - Wed Mar 15 12:14:03 2000 | 2000 | 11 | 3 | 3 | 75 - Wed Mar 15 03:14:04 2000 | 2000 | 11 | 3 | 3 | 75 - Wed Mar 15 02:14:05 2000 | 2000 | 11 | 3 | 3 | 75 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:00 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Tue Jun 10 18:32:01 1997 | 1997 | 24 | 2 | 2 | 161 - Mon Feb 10 17:32:01 1997 | 1997 | 7 | 1 | 1 | 41 - Tue Feb 11 17:32:01 1997 | 1997 | 7 | 2 | 2 | 42 - Wed Feb 12 17:32:01 1997 | 1997 | 7 | 3 | 3 | 43 - Thu Feb 13 17:32:01 1997 | 1997 | 7 | 4 | 4 | 44 - Fri Feb 14 17:32:01 1997 | 1997 | 7 | 5 | 5 | 45 - Sat Feb 15 17:32:01 1997 | 1997 | 7 | 6 | 6 | 46 - Sun Feb 16 17:32:01 1997 | 1997 | 7 | 7 | 0 | 47 - Tue Feb 16 17:32:01 0097 BC | -97 | 7 | 2 | 2 | 47 - Sat Feb 16 17:32:01 0097 | 97 | 7 | 6 | 6 | 47 - Thu Feb 16 17:32:01 0597 | 597 | 7 | 4 | 4 | 47 - Tue Feb 16 17:32:01 1097 | 1097 | 7 | 2 | 2 | 47 - Sat Feb 16 17:32:01 1697 | 1697 | 7 | 6 | 6 | 47 - Thu Feb 16 17:32:01 1797 | 1797 | 7 | 4 | 4 | 47 - Tue Feb 16 17:32:01 1897 | 1897 | 7 | 2 | 2 | 47 - Sun Feb 16 17:32:01 1997 | 1997 | 7 | 7 | 0 | 47 - Sat Feb 16 17:32:01 2097 | 2097 | 7 | 6 | 6 | 47 - Wed Feb 28 17:32:01 1996 | 1996 | 9 | 3 | 3 | 59 - Thu Feb 29 17:32:01 1996 | 1996 | 9 | 4 | 4 | 60 - Fri Mar 01 17:32:01 1996 | 1996 | 9 | 5 | 5 | 61 - Mon Dec 30 17:32:01 1996 | 1997 | 1 | 1 | 1 | 365 - Tue Dec 31 17:32:01 1996 | 1997 | 1 | 2 | 2 | 366 - Wed Jan 01 17:32:01 1997 | 1997 | 1 | 3 | 3 | 1 - Fri Feb 28 17:32:01 1997 | 1997 | 9 | 5 | 5 | 59 - Sat Mar 01 17:32:01 1997 | 1997 | 9 | 6 | 6 | 60 - Tue Dec 30 17:32:01 1997 | 1998 | 1 | 2 | 2 | 364 - Wed Dec 31 17:32:01 1997 | 1998 | 1 | 3 | 3 | 365 - Fri Dec 31 17:32:01 1999 | 1999 | 52 | 5 | 5 | 365 - Sat Jan 01 17:32:01 2000 | 1999 | 52 | 6 | 6 | 1 - Sun Dec 31 17:32:01 2000 | 2000 | 52 | 7 | 0 | 366 - Mon Jan 01 17:32:01 2001 | 2001 | 1 | 1 | 1 | 1 + timestamp | isoyear | week | isodow | dow | doy +------------------------+-----------+------+--------+-----+----- + -infinity | -Infinity | | | | + infinity | Infinity | | | | + 1970-01-01 00:00:00 | 1970 | 1 | 4 | 4 | 1 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:02 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01.4 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01.5 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01.6 | 1997 | 7 | 1 | 1 | 41 + 1997-01-02 00:00:00 | 1997 | 1 | 4 | 4 | 2 + 1997-01-02 03:04:05 | 1997 | 1 | 4 | 4 | 2 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-06-10 17:32:01 | 1997 | 24 | 2 | 2 | 161 + 2001-09-22 18:19:20 | 2001 | 38 | 6 | 6 | 265 + 2000-03-15 08:14:01 | 2000 | 11 | 3 | 3 | 75 + 2000-03-15 13:14:02 | 2000 | 11 | 3 | 3 | 75 + 2000-03-15 12:14:03 | 2000 | 11 | 3 | 3 | 75 + 2000-03-15 03:14:04 | 2000 | 11 | 3 | 3 | 75 + 2000-03-15 02:14:05 | 2000 | 11 | 3 | 3 | 75 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:00 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-06-10 18:32:01 | 1997 | 24 | 2 | 2 | 161 + 1997-02-10 17:32:01 | 1997 | 7 | 1 | 1 | 41 + 1997-02-11 17:32:01 | 1997 | 7 | 2 | 2 | 42 + 1997-02-12 17:32:01 | 1997 | 7 | 3 | 3 | 43 + 1997-02-13 17:32:01 | 1997 | 7 | 4 | 4 | 44 + 1997-02-14 17:32:01 | 1997 | 7 | 5 | 5 | 45 + 1997-02-15 17:32:01 | 1997 | 7 | 6 | 6 | 46 + 1997-02-16 17:32:01 | 1997 | 7 | 7 | 0 | 47 + 0097-02-16 17:32:01 BC | -97 | 7 | 2 | 2 | 47 + 0097-02-16 17:32:01 | 97 | 7 | 6 | 6 | 47 + 0597-02-16 17:32:01 | 597 | 7 | 4 | 4 | 47 + 1097-02-16 17:32:01 | 1097 | 7 | 2 | 2 | 47 + 1697-02-16 17:32:01 | 1697 | 7 | 6 | 6 | 47 + 1797-02-16 17:32:01 | 1797 | 7 | 4 | 4 | 47 + 1897-02-16 17:32:01 | 1897 | 7 | 2 | 2 | 47 + 1997-02-16 17:32:01 | 1997 | 7 | 7 | 0 | 47 + 2097-02-16 17:32:01 | 2097 | 7 | 6 | 6 | 47 + 1996-02-28 17:32:01 | 1996 | 9 | 3 | 3 | 59 + 1996-02-29 17:32:01 | 1996 | 9 | 4 | 4 | 60 + 1996-03-01 17:32:01 | 1996 | 9 | 5 | 5 | 61 + 1996-12-30 17:32:01 | 1997 | 1 | 1 | 1 | 365 + 1996-12-31 17:32:01 | 1997 | 1 | 2 | 2 | 366 + 1997-01-01 17:32:01 | 1997 | 1 | 3 | 3 | 1 + 1997-02-28 17:32:01 | 1997 | 9 | 5 | 5 | 59 + 1997-03-01 17:32:01 | 1997 | 9 | 6 | 6 | 60 + 1997-12-30 17:32:01 | 1998 | 1 | 2 | 2 | 364 + 1997-12-31 17:32:01 | 1998 | 1 | 3 | 3 | 365 + 1999-12-31 17:32:01 | 1999 | 52 | 5 | 5 | 365 + 2000-01-01 17:32:01 | 1999 | 52 | 6 | 6 | 1 + 2000-12-31 17:32:01 | 2000 | 52 | 7 | 0 | 366 + 2001-01-01 17:32:01 | 2001 | 1 | 1 | 1 | 1 (65 rows) SELECT d1 as "timestamp", @@ -1003,73 +999,73 @@ SELECT d1 as "timestamp", round(date_part( 'julian', d1)) AS julian, date_part( 'epoch', d1) AS epoch FROM TIMESTAMP_TBL; - timestamp | decade | century | millennium | julian | epoch ------------------------------+-----------+-----------+------------+-----------+-------------- - -infinity | -Infinity | -Infinity | -Infinity | -Infinity | -Infinity - infinity | Infinity | Infinity | Infinity | Infinity | Infinity - Thu Jan 01 00:00:00 1970 | 197 | 20 | 2 | 2440588 | 0 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:02 1997 | 199 | 20 | 2 | 2450491 | 855595922 - Mon Feb 10 17:32:01.4 1997 | 199 | 20 | 2 | 2450491 | 855595921.4 - Mon Feb 10 17:32:01.5 1997 | 199 | 20 | 2 | 2450491 | 855595921.5 - Mon Feb 10 17:32:01.6 1997 | 199 | 20 | 2 | 2450491 | 855595921.6 - Thu Jan 02 00:00:00 1997 | 199 | 20 | 2 | 2450451 | 852163200 - Thu Jan 02 03:04:05 1997 | 199 | 20 | 2 | 2450451 | 852174245 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Tue Jun 10 17:32:01 1997 | 199 | 20 | 2 | 2450611 | 865963921 - Sat Sep 22 18:19:20 2001 | 200 | 21 | 3 | 2452176 | 1001182760 - Wed Mar 15 08:14:01 2000 | 200 | 20 | 2 | 2451619 | 953108041 - Wed Mar 15 13:14:02 2000 | 200 | 20 | 2 | 2451620 | 953126042 - Wed Mar 15 12:14:03 2000 | 200 | 20 | 2 | 2451620 | 953122443 - Wed Mar 15 03:14:04 2000 | 200 | 20 | 2 | 2451619 | 953090044 - Wed Mar 15 02:14:05 2000 | 200 | 20 | 2 | 2451619 | 953086445 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:00 1997 | 199 | 20 | 2 | 2450491 | 855595920 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Tue Jun 10 18:32:01 1997 | 199 | 20 | 2 | 2450611 | 865967521 - Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491 | 855595921 - Tue Feb 11 17:32:01 1997 | 199 | 20 | 2 | 2450492 | 855682321 - Wed Feb 12 17:32:01 1997 | 199 | 20 | 2 | 2450493 | 855768721 - Thu Feb 13 17:32:01 1997 | 199 | 20 | 2 | 2450494 | 855855121 - Fri Feb 14 17:32:01 1997 | 199 | 20 | 2 | 2450495 | 855941521 - Sat Feb 15 17:32:01 1997 | 199 | 20 | 2 | 2450496 | 856027921 - Sun Feb 16 17:32:01 1997 | 199 | 20 | 2 | 2450497 | 856114321 - Tue Feb 16 17:32:01 0097 BC | -10 | -1 | -1 | 1686043 | -65192711279 - Sat Feb 16 17:32:01 0097 | 9 | 1 | 1 | 1756537 | -59102029679 - Thu Feb 16 17:32:01 0597 | 59 | 6 | 1 | 1939158 | -43323575279 - Tue Feb 16 17:32:01 1097 | 109 | 11 | 2 | 2121779 | -27545120879 - Sat Feb 16 17:32:01 1697 | 169 | 17 | 2 | 2340925 | -8610906479 - Thu Feb 16 17:32:01 1797 | 179 | 18 | 2 | 2377449 | -5455232879 - Tue Feb 16 17:32:01 1897 | 189 | 19 | 2 | 2413973 | -2299559279 - Sun Feb 16 17:32:01 1997 | 199 | 20 | 2 | 2450497 | 856114321 - Sat Feb 16 17:32:01 2097 | 209 | 21 | 3 | 2487022 | 4011874321 - Wed Feb 28 17:32:01 1996 | 199 | 20 | 2 | 2450143 | 825528721 - Thu Feb 29 17:32:01 1996 | 199 | 20 | 2 | 2450144 | 825615121 - Fri Mar 01 17:32:01 1996 | 199 | 20 | 2 | 2450145 | 825701521 - Mon Dec 30 17:32:01 1996 | 199 | 20 | 2 | 2450449 | 851967121 - Tue Dec 31 17:32:01 1996 | 199 | 20 | 2 | 2450450 | 852053521 - Wed Jan 01 17:32:01 1997 | 199 | 20 | 2 | 2450451 | 852139921 - Fri Feb 28 17:32:01 1997 | 199 | 20 | 2 | 2450509 | 857151121 - Sat Mar 01 17:32:01 1997 | 199 | 20 | 2 | 2450510 | 857237521 - Tue Dec 30 17:32:01 1997 | 199 | 20 | 2 | 2450814 | 883503121 - Wed Dec 31 17:32:01 1997 | 199 | 20 | 2 | 2450815 | 883589521 - Fri Dec 31 17:32:01 1999 | 199 | 20 | 2 | 2451545 | 946661521 - Sat Jan 01 17:32:01 2000 | 200 | 20 | 2 | 2451546 | 946747921 - Sun Dec 31 17:32:01 2000 | 200 | 20 | 2 | 2451911 | 978283921 - Mon Jan 01 17:32:01 2001 | 200 | 21 | 3 | 2451912 | 978370321 + timestamp | decade | century | millennium | julian | epoch +------------------------+-----------+-----------+------------+-----------+-------------- + -infinity | -Infinity | -Infinity | -Infinity | -Infinity | -Infinity + infinity | Infinity | Infinity | Infinity | Infinity | Infinity + 1970-01-01 00:00:00 | 197 | 20 | 2 | 2440588 | 0 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:02 | 199 | 20 | 2 | 2450491 | 855595922 + 1997-02-10 17:32:01.4 | 199 | 20 | 2 | 2450491 | 855595921.4 + 1997-02-10 17:32:01.5 | 199 | 20 | 2 | 2450491 | 855595921.5 + 1997-02-10 17:32:01.6 | 199 | 20 | 2 | 2450491 | 855595921.6 + 1997-01-02 00:00:00 | 199 | 20 | 2 | 2450451 | 852163200 + 1997-01-02 03:04:05 | 199 | 20 | 2 | 2450451 | 852174245 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-06-10 17:32:01 | 199 | 20 | 2 | 2450611 | 865963921 + 2001-09-22 18:19:20 | 200 | 21 | 3 | 2452176 | 1001182760 + 2000-03-15 08:14:01 | 200 | 20 | 2 | 2451619 | 953108041 + 2000-03-15 13:14:02 | 200 | 20 | 2 | 2451620 | 953126042 + 2000-03-15 12:14:03 | 200 | 20 | 2 | 2451620 | 953122443 + 2000-03-15 03:14:04 | 200 | 20 | 2 | 2451619 | 953090044 + 2000-03-15 02:14:05 | 200 | 20 | 2 | 2451619 | 953086445 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:00 | 199 | 20 | 2 | 2450491 | 855595920 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-06-10 18:32:01 | 199 | 20 | 2 | 2450611 | 865967521 + 1997-02-10 17:32:01 | 199 | 20 | 2 | 2450491 | 855595921 + 1997-02-11 17:32:01 | 199 | 20 | 2 | 2450492 | 855682321 + 1997-02-12 17:32:01 | 199 | 20 | 2 | 2450493 | 855768721 + 1997-02-13 17:32:01 | 199 | 20 | 2 | 2450494 | 855855121 + 1997-02-14 17:32:01 | 199 | 20 | 2 | 2450495 | 855941521 + 1997-02-15 17:32:01 | 199 | 20 | 2 | 2450496 | 856027921 + 1997-02-16 17:32:01 | 199 | 20 | 2 | 2450497 | 856114321 + 0097-02-16 17:32:01 BC | -10 | -1 | -1 | 1686043 | -65192711279 + 0097-02-16 17:32:01 | 9 | 1 | 1 | 1756537 | -59102029679 + 0597-02-16 17:32:01 | 59 | 6 | 1 | 1939158 | -43323575279 + 1097-02-16 17:32:01 | 109 | 11 | 2 | 2121779 | -27545120879 + 1697-02-16 17:32:01 | 169 | 17 | 2 | 2340925 | -8610906479 + 1797-02-16 17:32:01 | 179 | 18 | 2 | 2377449 | -5455232879 + 1897-02-16 17:32:01 | 189 | 19 | 2 | 2413973 | -2299559279 + 1997-02-16 17:32:01 | 199 | 20 | 2 | 2450497 | 856114321 + 2097-02-16 17:32:01 | 209 | 21 | 3 | 2487022 | 4011874321 + 1996-02-28 17:32:01 | 199 | 20 | 2 | 2450143 | 825528721 + 1996-02-29 17:32:01 | 199 | 20 | 2 | 2450144 | 825615121 + 1996-03-01 17:32:01 | 199 | 20 | 2 | 2450145 | 825701521 + 1996-12-30 17:32:01 | 199 | 20 | 2 | 2450449 | 851967121 + 1996-12-31 17:32:01 | 199 | 20 | 2 | 2450450 | 852053521 + 1997-01-01 17:32:01 | 199 | 20 | 2 | 2450451 | 852139921 + 1997-02-28 17:32:01 | 199 | 20 | 2 | 2450509 | 857151121 + 1997-03-01 17:32:01 | 199 | 20 | 2 | 2450510 | 857237521 + 1997-12-30 17:32:01 | 199 | 20 | 2 | 2450814 | 883503121 + 1997-12-31 17:32:01 | 199 | 20 | 2 | 2450815 | 883589521 + 1999-12-31 17:32:01 | 199 | 20 | 2 | 2451545 | 946661521 + 2000-01-01 17:32:01 | 200 | 20 | 2 | 2451546 | 946747921 + 2000-12-31 17:32:01 | 200 | 20 | 2 | 2451911 | 978283921 + 2001-01-01 17:32:01 | 200 | 21 | 3 | 2451912 | 978370321 (65 rows) -- extract implementation is mostly the same as date_part, so only @@ -1081,73 +1077,73 @@ SELECT d1 as "timestamp", round(extract(julian from d1)) AS julian, extract(epoch from d1) AS epoch FROM TIMESTAMP_TBL; - timestamp | microseconds | milliseconds | seconds | julian | epoch ------------------------------+--------------+--------------+-----------+-----------+--------------------- - -infinity | | | | -Infinity | -Infinity - infinity | | | | Infinity | Infinity - Thu Jan 01 00:00:00 1970 | 0 | 0.000 | 0.000000 | 2440588 | 0.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:02 1997 | 2000000 | 2000.000 | 2.000000 | 2450491 | 855595922.000000 - Mon Feb 10 17:32:01.4 1997 | 1400000 | 1400.000 | 1.400000 | 2450491 | 855595921.400000 - Mon Feb 10 17:32:01.5 1997 | 1500000 | 1500.000 | 1.500000 | 2450491 | 855595921.500000 - Mon Feb 10 17:32:01.6 1997 | 1600000 | 1600.000 | 1.600000 | 2450491 | 855595921.600000 - Thu Jan 02 00:00:00 1997 | 0 | 0.000 | 0.000000 | 2450451 | 852163200.000000 - Thu Jan 02 03:04:05 1997 | 5000000 | 5000.000 | 5.000000 | 2450451 | 852174245.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Tue Jun 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450611 | 865963921.000000 - Sat Sep 22 18:19:20 2001 | 20000000 | 20000.000 | 20.000000 | 2452176 | 1001182760.000000 - Wed Mar 15 08:14:01 2000 | 1000000 | 1000.000 | 1.000000 | 2451619 | 953108041.000000 - Wed Mar 15 13:14:02 2000 | 2000000 | 2000.000 | 2.000000 | 2451620 | 953126042.000000 - Wed Mar 15 12:14:03 2000 | 3000000 | 3000.000 | 3.000000 | 2451620 | 953122443.000000 - Wed Mar 15 03:14:04 2000 | 4000000 | 4000.000 | 4.000000 | 2451619 | 953090044.000000 - Wed Mar 15 02:14:05 2000 | 5000000 | 5000.000 | 5.000000 | 2451619 | 953086445.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:00 1997 | 0 | 0.000 | 0.000000 | 2450491 | 855595920.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Tue Jun 10 18:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450611 | 865967521.000000 - Mon Feb 10 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 - Tue Feb 11 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450492 | 855682321.000000 - Wed Feb 12 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450493 | 855768721.000000 - Thu Feb 13 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450494 | 855855121.000000 - Fri Feb 14 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450495 | 855941521.000000 - Sat Feb 15 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450496 | 856027921.000000 - Sun Feb 16 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450497 | 856114321.000000 - Tue Feb 16 17:32:01 0097 BC | 1000000 | 1000.000 | 1.000000 | 1686043 | -65192711279.000000 - Sat Feb 16 17:32:01 0097 | 1000000 | 1000.000 | 1.000000 | 1756537 | -59102029679.000000 - Thu Feb 16 17:32:01 0597 | 1000000 | 1000.000 | 1.000000 | 1939158 | -43323575279.000000 - Tue Feb 16 17:32:01 1097 | 1000000 | 1000.000 | 1.000000 | 2121779 | -27545120879.000000 - Sat Feb 16 17:32:01 1697 | 1000000 | 1000.000 | 1.000000 | 2340925 | -8610906479.000000 - Thu Feb 16 17:32:01 1797 | 1000000 | 1000.000 | 1.000000 | 2377449 | -5455232879.000000 - Tue Feb 16 17:32:01 1897 | 1000000 | 1000.000 | 1.000000 | 2413973 | -2299559279.000000 - Sun Feb 16 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450497 | 856114321.000000 - Sat Feb 16 17:32:01 2097 | 1000000 | 1000.000 | 1.000000 | 2487022 | 4011874321.000000 - Wed Feb 28 17:32:01 1996 | 1000000 | 1000.000 | 1.000000 | 2450143 | 825528721.000000 - Thu Feb 29 17:32:01 1996 | 1000000 | 1000.000 | 1.000000 | 2450144 | 825615121.000000 - Fri Mar 01 17:32:01 1996 | 1000000 | 1000.000 | 1.000000 | 2450145 | 825701521.000000 - Mon Dec 30 17:32:01 1996 | 1000000 | 1000.000 | 1.000000 | 2450449 | 851967121.000000 - Tue Dec 31 17:32:01 1996 | 1000000 | 1000.000 | 1.000000 | 2450450 | 852053521.000000 - Wed Jan 01 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450451 | 852139921.000000 - Fri Feb 28 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450509 | 857151121.000000 - Sat Mar 01 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450510 | 857237521.000000 - Tue Dec 30 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450814 | 883503121.000000 - Wed Dec 31 17:32:01 1997 | 1000000 | 1000.000 | 1.000000 | 2450815 | 883589521.000000 - Fri Dec 31 17:32:01 1999 | 1000000 | 1000.000 | 1.000000 | 2451545 | 946661521.000000 - Sat Jan 01 17:32:01 2000 | 1000000 | 1000.000 | 1.000000 | 2451546 | 946747921.000000 - Sun Dec 31 17:32:01 2000 | 1000000 | 1000.000 | 1.000000 | 2451911 | 978283921.000000 - Mon Jan 01 17:32:01 2001 | 1000000 | 1000.000 | 1.000000 | 2451912 | 978370321.000000 + timestamp | microseconds | milliseconds | seconds | julian | epoch +------------------------+--------------+--------------+-----------+-----------+--------------------- + -infinity | | | | -Infinity | -Infinity + infinity | | | | Infinity | Infinity + 1970-01-01 00:00:00 | 0 | 0.000 | 0.000000 | 2440588 | 0.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:02 | 2000000 | 2000.000 | 2.000000 | 2450491 | 855595922.000000 + 1997-02-10 17:32:01.4 | 1400000 | 1400.000 | 1.400000 | 2450491 | 855595921.400000 + 1997-02-10 17:32:01.5 | 1500000 | 1500.000 | 1.500000 | 2450491 | 855595921.500000 + 1997-02-10 17:32:01.6 | 1600000 | 1600.000 | 1.600000 | 2450491 | 855595921.600000 + 1997-01-02 00:00:00 | 0 | 0.000 | 0.000000 | 2450451 | 852163200.000000 + 1997-01-02 03:04:05 | 5000000 | 5000.000 | 5.000000 | 2450451 | 852174245.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-06-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450611 | 865963921.000000 + 2001-09-22 18:19:20 | 20000000 | 20000.000 | 20.000000 | 2452176 | 1001182760.000000 + 2000-03-15 08:14:01 | 1000000 | 1000.000 | 1.000000 | 2451619 | 953108041.000000 + 2000-03-15 13:14:02 | 2000000 | 2000.000 | 2.000000 | 2451620 | 953126042.000000 + 2000-03-15 12:14:03 | 3000000 | 3000.000 | 3.000000 | 2451620 | 953122443.000000 + 2000-03-15 03:14:04 | 4000000 | 4000.000 | 4.000000 | 2451619 | 953090044.000000 + 2000-03-15 02:14:05 | 5000000 | 5000.000 | 5.000000 | 2451619 | 953086445.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:00 | 0 | 0.000 | 0.000000 | 2450491 | 855595920.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-06-10 18:32:01 | 1000000 | 1000.000 | 1.000000 | 2450611 | 865967521.000000 + 1997-02-10 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855595921.000000 + 1997-02-11 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450492 | 855682321.000000 + 1997-02-12 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450493 | 855768721.000000 + 1997-02-13 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450494 | 855855121.000000 + 1997-02-14 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450495 | 855941521.000000 + 1997-02-15 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450496 | 856027921.000000 + 1997-02-16 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450497 | 856114321.000000 + 0097-02-16 17:32:01 BC | 1000000 | 1000.000 | 1.000000 | 1686043 | -65192711279.000000 + 0097-02-16 17:32:01 | 1000000 | 1000.000 | 1.000000 | 1756537 | -59102029679.000000 + 0597-02-16 17:32:01 | 1000000 | 1000.000 | 1.000000 | 1939158 | -43323575279.000000 + 1097-02-16 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2121779 | -27545120879.000000 + 1697-02-16 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2340925 | -8610906479.000000 + 1797-02-16 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2377449 | -5455232879.000000 + 1897-02-16 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2413973 | -2299559279.000000 + 1997-02-16 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450497 | 856114321.000000 + 2097-02-16 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2487022 | 4011874321.000000 + 1996-02-28 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450143 | 825528721.000000 + 1996-02-29 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450144 | 825615121.000000 + 1996-03-01 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450145 | 825701521.000000 + 1996-12-30 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450449 | 851967121.000000 + 1996-12-31 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450450 | 852053521.000000 + 1997-01-01 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450451 | 852139921.000000 + 1997-02-28 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450509 | 857151121.000000 + 1997-03-01 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450510 | 857237521.000000 + 1997-12-30 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450814 | 883503121.000000 + 1997-12-31 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2450815 | 883589521.000000 + 1999-12-31 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2451545 | 946661521.000000 + 2000-01-01 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2451546 | 946747921.000000 + 2000-12-31 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2451911 | 978283921.000000 + 2001-01-01 17:32:01 | 1000000 | 1000.000 | 1.000000 | 2451912 | 978370321.000000 (65 rows) -- value near upper bound uses special case in code @@ -2005,17 +2001,20 @@ SELECT i, -- timestamp numeric fields constructor SELECT make_timestamp(2014, 12, 28, 6, 30, 45.887); - make_timestamp ------------------------------- - Sun Dec 28 06:30:45.887 2014 + make_timestamp +------------------------- + 2014-12-28 06:30:45.887 (1 row) SELECT make_timestamp(-44, 3, 15, 12, 30, 15); - make_timestamp ------------------------------ - Fri Mar 15 12:30:15 0044 BC + make_timestamp +------------------------ + 0044-03-15 12:30:15 BC (1 row) -- should fail select make_timestamp(0, 7, 15, 12, 30, 15); ERROR: date field value out of range: 0-07-15 +DROP TABLE TIMESTAMP_TBL; +reset intervalstyle; +reset datestyle; diff --git a/src/tests/regress/data/expected/timestamptz.out b/src/tests/regress/data/expected/timestamptz.out index 990c4eddf1365..9b88cdf1916a1 100644 --- a/src/tests/regress/data/expected/timestamptz.out +++ b/src/tests/regress/data/expected/timestamptz.out @@ -124,19 +124,21 @@ INSERT INTO TIMESTAMPTZ_TBL VALUES ('97FEB10 5:32:01PM UTC'); INSERT INTO TIMESTAMPTZ_TBL VALUES ('97/02/10 17:32:01 UTC'); reset datestyle; INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997.041 17:32:01 UTC'); +set datestyle to iso; +set intervalstyle to postgres; -- timestamps at different timezones INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970210 173201 America/New_York'); SELECT '19970210 173201' AT TIME ZONE 'America/New_York'; - timezone --------------------------- - Mon Feb 10 20:32:01 1997 + timezone +--------------------- + 1997-02-10 20:32:01 (1 row) INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970710 173201 America/New_York'); SELECT '19970710 173201' AT TIME ZONE 'America/New_York'; - timezone --------------------------- - Thu Jul 10 20:32:01 1997 + timezone +--------------------- + 1997-07-10 20:32:01 (1 row) INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970710 173201 America/Does_not_exist'); @@ -147,27 +149,27 @@ SELECT '19970710 173201' AT TIME ZONE 'America/Does_not_exist'; ERROR: time zone "America/Does_not_exist" not recognized -- Daylight saving time for timestamps beyond 32-bit time_t range. SELECT '20500710 173201 Europe/Helsinki'::timestamptz; -- DST - timestamptz ------------------------------- - Sun Jul 10 07:32:01 2050 PDT + timestamptz +------------------------ + 2050-07-10 07:32:01-07 (1 row) SELECT '20500110 173201 Europe/Helsinki'::timestamptz; -- non-DST - timestamptz ------------------------------- - Mon Jan 10 07:32:01 2050 PST + timestamptz +------------------------ + 2050-01-10 07:32:01-08 (1 row) SELECT '205000-07-10 17:32:01 Europe/Helsinki'::timestamptz; -- DST - timestamptz --------------------------------- - Thu Jul 10 07:32:01 205000 PDT + timestamptz +-------------------------- + 205000-07-10 07:32:01-07 (1 row) SELECT '205000-01-10 17:32:01 Europe/Helsinki'::timestamptz; -- non-DST - timestamptz --------------------------------- - Fri Jan 10 07:32:01 205000 PST + timestamptz +-------------------------- + 205000-01-10 07:32:01-08 (1 row) -- Check date conversion and date arithmetic @@ -218,123 +220,123 @@ LINE 1: INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 5097 BC... -- Alternative field order that we've historically supported (sort of) -- with regular and POSIXy timezone specs SELECT 'Wed Jul 11 10:51:14 America/New_York 2001'::timestamptz; - timestamptz ------------------------------- - Wed Jul 11 07:51:14 2001 PDT + timestamptz +------------------------ + 2001-07-11 07:51:14-07 (1 row) SELECT 'Wed Jul 11 10:51:14 GMT-4 2001'::timestamptz; - timestamptz ------------------------------- - Tue Jul 10 23:51:14 2001 PDT + timestamptz +------------------------ + 2001-07-10 23:51:14-07 (1 row) SELECT 'Wed Jul 11 10:51:14 GMT+4 2001'::timestamptz; - timestamptz ------------------------------- - Wed Jul 11 07:51:14 2001 PDT + timestamptz +------------------------ + 2001-07-11 07:51:14-07 (1 row) SELECT 'Wed Jul 11 10:51:14 PST-03:00 2001'::timestamptz; - timestamptz ------------------------------- - Wed Jul 11 00:51:14 2001 PDT + timestamptz +------------------------ + 2001-07-11 00:51:14-07 (1 row) SELECT 'Wed Jul 11 10:51:14 PST+03:00 2001'::timestamptz; - timestamptz ------------------------------- - Wed Jul 11 06:51:14 2001 PDT + timestamptz +------------------------ + 2001-07-11 06:51:14-07 (1 row) SELECT d1 FROM TIMESTAMPTZ_TBL; - d1 ---------------------------------- + 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 1997 PST - Mon Feb 10 17:32:02 1997 PST - Mon Feb 10 17:32:01.4 1997 PST - Mon Feb 10 17:32:01.5 1997 PST - Mon Feb 10 17:32:01.6 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 18: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 - Mon Feb 10 14:32:01 1997 PST - Thu Jul 10 14:32:01 1997 PDT - 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:01 0097 PST BC - Sat Feb 16 17:32:01 0097 PST - Thu Feb 16 17:32:01 0597 PST - Tue Feb 16 17:32:01 1097 PST - Sat Feb 16 17:32:01 1697 PST - Thu Feb 16 17:32:01 1797 PST - Tue Feb 16 17:32:01 1897 PST - Sun Feb 16 17:32:01 1997 PST - Sat Feb 16 17:32:01 2097 PST - 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 + 1969-12-31 16:00:00-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:02-08 + 1997-02-10 17:32:01.4-08 + 1997-02-10 17:32:01.5-08 + 1997-02-10 17:32:01.6-08 + 1997-01-02 00:00:00-08 + 1997-01-02 03:04:05-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-06-10 17:32:01-07 + 2001-09-22 18:19:20-07 + 2000-03-15 08:14:01-08 + 2000-03-15 04:14:02-08 + 2000-03-15 02:14:03-08 + 2000-03-15 03:14:04-08 + 2000-03-15 01:14:05-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:00-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 09:32:01-08 + 1997-02-10 09:32:01-08 + 1997-02-10 09:32:01-08 + 1997-02-10 14:32:01-08 + 1997-07-10 14:32:01-07 + 1997-06-10 18:32:01-07 + 1997-02-10 17:32:01-08 + 1997-02-11 17:32:01-08 + 1997-02-12 17:32:01-08 + 1997-02-13 17:32:01-08 + 1997-02-14 17:32:01-08 + 1997-02-15 17:32:01-08 + 1997-02-16 17:32:01-08 + 0097-02-16 17:32:01-08 BC + 0097-02-16 17:32:01-08 + 0597-02-16 17:32:01-08 + 1097-02-16 17:32:01-08 + 1697-02-16 17:32:01-08 + 1797-02-16 17:32:01-08 + 1897-02-16 17:32:01-08 + 1997-02-16 17:32:01-08 + 2097-02-16 17:32:01-08 + 1996-02-28 17:32:01-08 + 1996-02-29 17:32:01-08 + 1996-03-01 17:32:01-08 + 1996-12-30 17:32:01-08 + 1996-12-31 17:32:01-08 + 1997-01-01 17:32:01-08 + 1997-02-28 17:32:01-08 + 1997-03-01 17:32:01-08 + 1997-12-30 17:32:01-08 + 1997-12-31 17:32:01-08 + 1999-12-31 17:32:01-08 + 2000-01-01 17:32:01-08 + 2000-12-31 17:32:01-08 + 2001-01-01 17:32:01-08 (66 rows) -- Check behavior at the boundaries of the timestamp range SELECT '4714-11-24 00:00:00+00 BC'::timestamptz; - timestamptz ---------------------------------- - Sun Nov 23 16:00:00 4714 PST BC + timestamptz +--------------------------- + 4714-11-23 16:00:00-08 BC (1 row) SELECT '4714-11-23 16:00:00-08 BC'::timestamptz; - timestamptz ---------------------------------- - Sun Nov 23 16:00:00 4714 PST BC + timestamptz +--------------------------- + 4714-11-23 16:00:00-08 BC (1 row) SELECT 'Sun Nov 23 16:00:00 4714 PST BC'::timestamptz; - timestamptz ---------------------------------- - Sun Nov 23 16:00:00 4714 PST BC + timestamptz +--------------------------- + 4714-11-23 16:00:00-08 BC (1 row) SELECT '4714-11-23 23:59:59+00 BC'::timestamptz; -- out of range @@ -342,15 +344,15 @@ ERROR: timestamp out of range: "4714-11-23 23:59:59+00 BC" LINE 1: SELECT '4714-11-23 23:59:59+00 BC'::timestamptz; ^ SELECT '294276-12-31 23:59:59+00'::timestamptz; - timestamptz --------------------------------- - Sun Dec 31 15:59:59 294276 PST + timestamptz +-------------------------- + 294276-12-31 15:59:59-08 (1 row) SELECT '294276-12-31 15:59:59-08'::timestamptz; - timestamptz --------------------------------- - Sun Dec 31 15:59:59 294276 PST + timestamptz +-------------------------- + 294276-12-31 15:59:59-08 (1 row) SELECT '294277-01-01 00:00:00+00'::timestamptz; -- out of range @@ -364,322 +366,322 @@ LINE 1: SELECT '294277-12-31 16:00:00-08'::timestamptz; -- Demonstrate functions and operators SELECT d1 FROM TIMESTAMPTZ_TBL WHERE d1 > timestamp with time zone '1997-01-02'; - d1 --------------------------------- + d1 +-------------------------- infinity - 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:01.4 1997 PST - Mon Feb 10 17:32:01.5 1997 PST - Mon Feb 10 17:32:01.6 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 18: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 - Mon Feb 10 14:32:01 1997 PST - Thu Jul 10 14:32:01 1997 PDT - 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 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 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:02-08 + 1997-02-10 17:32:01.4-08 + 1997-02-10 17:32:01.5-08 + 1997-02-10 17:32:01.6-08 + 1997-01-02 03:04:05-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-06-10 17:32:01-07 + 2001-09-22 18:19:20-07 + 2000-03-15 08:14:01-08 + 2000-03-15 04:14:02-08 + 2000-03-15 02:14:03-08 + 2000-03-15 03:14:04-08 + 2000-03-15 01:14:05-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:00-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 09:32:01-08 + 1997-02-10 09:32:01-08 + 1997-02-10 09:32:01-08 + 1997-02-10 14:32:01-08 + 1997-07-10 14:32:01-07 + 1997-06-10 18:32:01-07 + 1997-02-10 17:32:01-08 + 1997-02-11 17:32:01-08 + 1997-02-12 17:32:01-08 + 1997-02-13 17:32:01-08 + 1997-02-14 17:32:01-08 + 1997-02-15 17:32:01-08 + 1997-02-16 17:32:01-08 + 1997-02-16 17:32:01-08 + 2097-02-16 17:32:01-08 + 1997-02-28 17:32:01-08 + 1997-03-01 17:32:01-08 + 1997-12-30 17:32:01-08 + 1997-12-31 17:32:01-08 + 1999-12-31 17:32:01-08 + 2000-01-01 17:32:01-08 + 2000-12-31 17:32:01-08 + 2001-01-01 17:32:01-08 (50 rows) SELECT d1 FROM TIMESTAMPTZ_TBL WHERE d1 < timestamp with time zone '1997-01-02'; - d1 ---------------------------------- + d1 +--------------------------- -infinity - Wed Dec 31 16:00:00 1969 PST - Tue Feb 16 17:32:01 0097 PST BC - Sat Feb 16 17:32:01 0097 PST - Thu Feb 16 17:32:01 0597 PST - Tue Feb 16 17:32:01 1097 PST - Sat Feb 16 17:32:01 1697 PST - Thu Feb 16 17:32:01 1797 PST - Tue Feb 16 17:32:01 1897 PST - 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 + 1969-12-31 16:00:00-08 + 0097-02-16 17:32:01-08 BC + 0097-02-16 17:32:01-08 + 0597-02-16 17:32:01-08 + 1097-02-16 17:32:01-08 + 1697-02-16 17:32:01-08 + 1797-02-16 17:32:01-08 + 1897-02-16 17:32:01-08 + 1996-02-28 17:32:01-08 + 1996-02-29 17:32:01-08 + 1996-03-01 17:32:01-08 + 1996-12-30 17:32:01-08 + 1996-12-31 17:32:01-08 + 1997-01-01 17:32:01-08 (15 rows) SELECT d1 FROM TIMESTAMPTZ_TBL WHERE d1 = timestamp with time zone '1997-01-02'; - d1 ------------------------------- - Thu Jan 02 00:00:00 1997 PST + d1 +------------------------ + 1997-01-02 00:00:00-08 (1 row) SELECT d1 FROM TIMESTAMPTZ_TBL WHERE d1 != timestamp with time zone '1997-01-02'; - d1 ---------------------------------- + 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 1997 PST - Mon Feb 10 17:32:02 1997 PST - Mon Feb 10 17:32:01.4 1997 PST - Mon Feb 10 17:32:01.5 1997 PST - Mon Feb 10 17:32:01.6 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 18: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 - Mon Feb 10 14:32:01 1997 PST - Thu Jul 10 14:32:01 1997 PDT - 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:01 0097 PST BC - Sat Feb 16 17:32:01 0097 PST - Thu Feb 16 17:32:01 0597 PST - Tue Feb 16 17:32:01 1097 PST - Sat Feb 16 17:32:01 1697 PST - Thu Feb 16 17:32:01 1797 PST - Tue Feb 16 17:32:01 1897 PST - Sun Feb 16 17:32:01 1997 PST - Sat Feb 16 17:32:01 2097 PST - 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 + 1969-12-31 16:00:00-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:02-08 + 1997-02-10 17:32:01.4-08 + 1997-02-10 17:32:01.5-08 + 1997-02-10 17:32:01.6-08 + 1997-01-02 03:04:05-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-06-10 17:32:01-07 + 2001-09-22 18:19:20-07 + 2000-03-15 08:14:01-08 + 2000-03-15 04:14:02-08 + 2000-03-15 02:14:03-08 + 2000-03-15 03:14:04-08 + 2000-03-15 01:14:05-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:00-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 09:32:01-08 + 1997-02-10 09:32:01-08 + 1997-02-10 09:32:01-08 + 1997-02-10 14:32:01-08 + 1997-07-10 14:32:01-07 + 1997-06-10 18:32:01-07 + 1997-02-10 17:32:01-08 + 1997-02-11 17:32:01-08 + 1997-02-12 17:32:01-08 + 1997-02-13 17:32:01-08 + 1997-02-14 17:32:01-08 + 1997-02-15 17:32:01-08 + 1997-02-16 17:32:01-08 + 0097-02-16 17:32:01-08 BC + 0097-02-16 17:32:01-08 + 0597-02-16 17:32:01-08 + 1097-02-16 17:32:01-08 + 1697-02-16 17:32:01-08 + 1797-02-16 17:32:01-08 + 1897-02-16 17:32:01-08 + 1997-02-16 17:32:01-08 + 2097-02-16 17:32:01-08 + 1996-02-28 17:32:01-08 + 1996-02-29 17:32:01-08 + 1996-03-01 17:32:01-08 + 1996-12-30 17:32:01-08 + 1996-12-31 17:32:01-08 + 1997-01-01 17:32:01-08 + 1997-02-28 17:32:01-08 + 1997-03-01 17:32:01-08 + 1997-12-30 17:32:01-08 + 1997-12-31 17:32:01-08 + 1999-12-31 17:32:01-08 + 2000-01-01 17:32:01-08 + 2000-12-31 17:32:01-08 + 2001-01-01 17:32:01-08 (65 rows) SELECT d1 FROM TIMESTAMPTZ_TBL WHERE d1 <= timestamp with time zone '1997-01-02'; - d1 ---------------------------------- + d1 +--------------------------- -infinity - Wed Dec 31 16:00:00 1969 PST - Thu Jan 02 00:00:00 1997 PST - Tue Feb 16 17:32:01 0097 PST BC - Sat Feb 16 17:32:01 0097 PST - Thu Feb 16 17:32:01 0597 PST - Tue Feb 16 17:32:01 1097 PST - Sat Feb 16 17:32:01 1697 PST - Thu Feb 16 17:32:01 1797 PST - Tue Feb 16 17:32:01 1897 PST - 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 + 1969-12-31 16:00:00-08 + 1997-01-02 00:00:00-08 + 0097-02-16 17:32:01-08 BC + 0097-02-16 17:32:01-08 + 0597-02-16 17:32:01-08 + 1097-02-16 17:32:01-08 + 1697-02-16 17:32:01-08 + 1797-02-16 17:32:01-08 + 1897-02-16 17:32:01-08 + 1996-02-28 17:32:01-08 + 1996-02-29 17:32:01-08 + 1996-03-01 17:32:01-08 + 1996-12-30 17:32:01-08 + 1996-12-31 17:32:01-08 + 1997-01-01 17:32:01-08 (16 rows) SELECT d1 FROM TIMESTAMPTZ_TBL WHERE d1 >= timestamp with time zone '1997-01-02'; - d1 --------------------------------- + d1 +-------------------------- infinity - 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:01.4 1997 PST - Mon Feb 10 17:32:01.5 1997 PST - Mon Feb 10 17:32:01.6 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 18: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 - Mon Feb 10 14:32:01 1997 PST - Thu Jul 10 14:32:01 1997 PDT - 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 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 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:02-08 + 1997-02-10 17:32:01.4-08 + 1997-02-10 17:32:01.5-08 + 1997-02-10 17:32:01.6-08 + 1997-01-02 00:00:00-08 + 1997-01-02 03:04:05-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-06-10 17:32:01-07 + 2001-09-22 18:19:20-07 + 2000-03-15 08:14:01-08 + 2000-03-15 04:14:02-08 + 2000-03-15 02:14:03-08 + 2000-03-15 03:14:04-08 + 2000-03-15 01:14:05-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:00-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 17:32:01-08 + 1997-02-10 09:32:01-08 + 1997-02-10 09:32:01-08 + 1997-02-10 09:32:01-08 + 1997-02-10 14:32:01-08 + 1997-07-10 14:32:01-07 + 1997-06-10 18:32:01-07 + 1997-02-10 17:32:01-08 + 1997-02-11 17:32:01-08 + 1997-02-12 17:32:01-08 + 1997-02-13 17:32:01-08 + 1997-02-14 17:32:01-08 + 1997-02-15 17:32:01-08 + 1997-02-16 17:32:01-08 + 1997-02-16 17:32:01-08 + 2097-02-16 17:32:01-08 + 1997-02-28 17:32:01-08 + 1997-03-01 17:32:01-08 + 1997-12-30 17:32:01-08 + 1997-12-31 17:32:01-08 + 1999-12-31 17:32:01-08 + 2000-01-01 17:32:01-08 + 2000-12-31 17:32:01-08 + 2001-01-01 17:32:01-08 (51 rows) SELECT d1 - timestamp with time zone '1997-01-02' AS diff FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; - diff ----------------------------------------- - @ 9863 days 8 hours ago - @ 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 1.4 secs - @ 39 days 17 hours 32 mins 1.5 secs - @ 39 days 17 hours 32 mins 1.6 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 17 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 - @ 39 days 14 hours 32 mins 1 sec - @ 189 days 13 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 + diff +---------------------- + -9863 days -08:00:00 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:02 + 39 days 17:32:01.4 + 39 days 17:32:01.5 + 39 days 17:32:01.6 + 00:00:00 + 03:04:05 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 159 days 16:32:01 + 1724 days 17:19:20 + 1168 days 08:14:01 + 1168 days 04:14:02 + 1168 days 02:14:03 + 1168 days 03:14:04 + 1168 days 01:14:05 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:00 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 09:32:01 + 39 days 09:32:01 + 39 days 09:32:01 + 39 days 14:32:01 + 189 days 13:32:01 + 159 days 17:32:01 + 39 days 17:32:01 + 40 days 17:32:01 + 41 days 17:32:01 + 42 days 17:32:01 + 43 days 17:32:01 + 44 days 17:32:01 + 45 days 17:32:01 + 45 days 17:32:01 + -308 days -06:27:59 + -307 days -06:27:59 + -306 days -06:27:59 + -2 days -06:27:59 + -1 days -06:27:59 + -06:27:59 + 57 days 17:32:01 + 58 days 17:32:01 + 362 days 17:32:01 + 363 days 17:32:01 + 1093 days 17:32:01 + 1094 days 17:32:01 + 1459 days 17:32:01 + 1460 days 17:32:01 (56 rows) SELECT date_trunc( 'week', timestamp with time zone '2004-02-29 15:44:17.71393' ) AS week_trunc; - week_trunc ------------------------------- - Mon Feb 23 00:00:00 2004 PST + week_trunc +------------------------ + 2004-02-23 00:00:00-08 (1 row) SELECT date_trunc('day', timestamp with time zone '2001-02-16 20:38:40+00', 'Australia/Sydney') as sydney_trunc; -- zone name - sydney_trunc ------------------------------- - Fri Feb 16 05:00:00 2001 PST + sydney_trunc +------------------------ + 2001-02-16 05:00:00-08 (1 row) SELECT date_trunc('day', timestamp with time zone '2001-02-16 20:38:40+00', 'GMT') as gmt_trunc; -- fixed-offset abbreviation - gmt_trunc ------------------------------- - Thu Feb 15 16:00:00 2001 PST + gmt_trunc +------------------------ + 2001-02-15 16:00:00-08 (1 row) SELECT date_trunc('day', timestamp with time zone '2001-02-16 20:38:40+00', 'VET') as vet_trunc; -- variable-offset abbreviation - vet_trunc ------------------------------- - Thu Feb 15 20:00:00 2001 PST + vet_trunc +------------------------ + 2001-02-15 20:00:00-08 (1 row) -- verify date_bin behaves the same as date_trunc for relevant intervals @@ -725,22 +727,22 @@ FROM ( ) intervals (interval), (VALUES (timestamptz '2020-02-11 15:44:17.71393')) ts (ts), (VALUES (timestamptz '2001-01-01')) origin (origin); - interval | ts | origin | date_bin --------------------+------------------------------------+------------------------------+------------------------------------ - 15 days | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Thu Feb 06 00:00:00 2020 PST - 2 hours | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Tue Feb 11 14:00:00 2020 PST - 1 hour 30 minutes | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Tue Feb 11 15:00:00 2020 PST - 15 minutes | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Tue Feb 11 15:30:00 2020 PST - 10 seconds | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Tue Feb 11 15:44:10 2020 PST - 100 milliseconds | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Tue Feb 11 15:44:17.7 2020 PST - 250 microseconds | Tue Feb 11 15:44:17.71393 2020 PST | Mon Jan 01 00:00:00 2001 PST | Tue Feb 11 15:44:17.71375 2020 PST + interval | ts | origin | date_bin +-------------------+------------------------------+------------------------+------------------------------ + 15 days | 2020-02-11 15:44:17.71393-08 | 2001-01-01 00:00:00-08 | 2020-02-06 00:00:00-08 + 2 hours | 2020-02-11 15:44:17.71393-08 | 2001-01-01 00:00:00-08 | 2020-02-11 14:00:00-08 + 1 hour 30 minutes | 2020-02-11 15:44:17.71393-08 | 2001-01-01 00:00:00-08 | 2020-02-11 15:00:00-08 + 15 minutes | 2020-02-11 15:44:17.71393-08 | 2001-01-01 00:00:00-08 | 2020-02-11 15:30:00-08 + 10 seconds | 2020-02-11 15:44:17.71393-08 | 2001-01-01 00:00:00-08 | 2020-02-11 15:44:10-08 + 100 milliseconds | 2020-02-11 15:44:17.71393-08 | 2001-01-01 00:00:00-08 | 2020-02-11 15:44:17.7-08 + 250 microseconds | 2020-02-11 15:44:17.71393-08 | 2001-01-01 00:00:00-08 | 2020-02-11 15:44:17.71375-08 (7 rows) -- shift bins using the origin parameter: SELECT date_bin('5 min'::interval, timestamptz '2020-02-01 01:01:01+00', timestamptz '2020-02-01 00:02:30+00'); - date_bin ------------------------------- - Fri Jan 31 16:57:30 2020 PST + date_bin +------------------------ + 2020-01-31 16:57:30-08 (1 row) -- disallow intervals with months or years @@ -748,74 +750,68 @@ SELECT date_bin('5 months'::interval, timestamp with time zone '2020-02-01 01:01 ERROR: timestamps cannot be binned into intervals containing months or years SELECT date_bin('5 years'::interval, timestamp with time zone '2020-02-01 01:01:01+00', timestamp with time zone '2001-01-01+00'); ERROR: timestamps cannot be binned into intervals containing months or years --- disallow zero intervals -SELECT date_bin('0 days'::interval, timestamp with time zone '1970-01-01 01:00:00+00' , timestamp with time zone '1970-01-01 00:00:00+00'); -ERROR: stride must be greater than zero --- disallow negative intervals -SELECT date_bin('-2 days'::interval, timestamp with time zone '1970-01-01 01:00:00+00' , timestamp with time zone '1970-01-01 00:00:00+00'); -ERROR: stride must be greater than zero -- Test casting within a BETWEEN qualifier SELECT 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'; - diff ----------------------------------------- - @ 9863 days 8 hours ago - @ 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 1.4 secs - @ 39 days 17 hours 32 mins 1.5 secs - @ 39 days 17 hours 32 mins 1.6 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 17 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 - @ 39 days 14 hours 32 mins 1 sec - @ 189 days 13 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 + diff +---------------------- + -9863 days -08:00:00 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:02 + 39 days 17:32:01.4 + 39 days 17:32:01.5 + 39 days 17:32:01.6 + 00:00:00 + 03:04:05 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 159 days 16:32:01 + 1724 days 17:19:20 + 1168 days 08:14:01 + 1168 days 04:14:02 + 1168 days 02:14:03 + 1168 days 03:14:04 + 1168 days 01:14:05 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:00 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 17:32:01 + 39 days 09:32:01 + 39 days 09:32:01 + 39 days 09:32:01 + 39 days 14:32:01 + 189 days 13:32:01 + 159 days 17:32:01 + 39 days 17:32:01 + 40 days 17:32:01 + 41 days 17:32:01 + 42 days 17:32:01 + 43 days 17:32:01 + 44 days 17:32:01 + 45 days 17:32:01 + 45 days 17:32:01 + -308 days -06:27:59 + -307 days -06:27:59 + -306 days -06:27:59 + -2 days -06:27:59 + -1 days -06:27:59 + -06:27:59 + 57 days 17:32:01 + 58 days 17:32:01 + 362 days 17:32:01 + 363 days 17:32:01 + 1093 days 17:32:01 + 1094 days 17:32:01 + 1459 days 17:32:01 + 1460 days 17:32:01 (56 rows) -- DATE_PART (timestamptz_part) @@ -824,148 +820,148 @@ SELECT d1 as timestamptz, 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; - timestamptz | year | month | day | hour | minute | second ----------------------------------+-----------+-------+-----+------+--------+-------- - -infinity | -Infinity | | | | | - infinity | Infinity | | | | | - 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:02 1997 PST | 1997 | 2 | 10 | 17 | 32 | 2 - Mon Feb 10 17:32:01.4 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1.4 - Mon Feb 10 17:32:01.5 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1.5 - 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 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 - 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 - Tue Jun 10 17:32:01 1997 PDT | 1997 | 6 | 10 | 17 | 32 | 1 - Sat Sep 22 18:19:20 2001 PDT | 2001 | 9 | 22 | 18 | 19 | 20 - Wed Mar 15 08:14:01 2000 PST | 2000 | 3 | 15 | 8 | 14 | 1 - Wed Mar 15 04:14:02 2000 PST | 2000 | 3 | 15 | 4 | 14 | 2 - Wed Mar 15 02:14:03 2000 PST | 2000 | 3 | 15 | 2 | 14 | 3 - Wed Mar 15 03:14:04 2000 PST | 2000 | 3 | 15 | 3 | 14 | 4 - Wed Mar 15 01:14:05 2000 PST | 2000 | 3 | 15 | 1 | 14 | 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 - Mon Feb 10 17:32:00 1997 PST | 1997 | 2 | 10 | 17 | 32 | 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:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1 - Mon Feb 10 09:32:01 1997 PST | 1997 | 2 | 10 | 9 | 32 | 1 - Mon Feb 10 09:32:01 1997 PST | 1997 | 2 | 10 | 9 | 32 | 1 - Mon Feb 10 09:32:01 1997 PST | 1997 | 2 | 10 | 9 | 32 | 1 - Mon Feb 10 14:32:01 1997 PST | 1997 | 2 | 10 | 14 | 32 | 1 - Thu Jul 10 14:32:01 1997 PDT | 1997 | 7 | 10 | 14 | 32 | 1 - Tue Jun 10 18:32:01 1997 PDT | 1997 | 6 | 10 | 18 | 32 | 1 - Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1 - Tue Feb 11 17:32:01 1997 PST | 1997 | 2 | 11 | 17 | 32 | 1 - Wed Feb 12 17:32:01 1997 PST | 1997 | 2 | 12 | 17 | 32 | 1 - Thu Feb 13 17:32:01 1997 PST | 1997 | 2 | 13 | 17 | 32 | 1 - Fri Feb 14 17:32:01 1997 PST | 1997 | 2 | 14 | 17 | 32 | 1 - Sat Feb 15 17:32:01 1997 PST | 1997 | 2 | 15 | 17 | 32 | 1 - Sun Feb 16 17:32:01 1997 PST | 1997 | 2 | 16 | 17 | 32 | 1 - Tue Feb 16 17:32:01 0097 PST BC | -97 | 2 | 16 | 17 | 32 | 1 - Sat Feb 16 17:32:01 0097 PST | 97 | 2 | 16 | 17 | 32 | 1 - Thu Feb 16 17:32:01 0597 PST | 597 | 2 | 16 | 17 | 32 | 1 - Tue Feb 16 17:32:01 1097 PST | 1097 | 2 | 16 | 17 | 32 | 1 - Sat Feb 16 17:32:01 1697 PST | 1697 | 2 | 16 | 17 | 32 | 1 - Thu Feb 16 17:32:01 1797 PST | 1797 | 2 | 16 | 17 | 32 | 1 - Tue Feb 16 17:32:01 1897 PST | 1897 | 2 | 16 | 17 | 32 | 1 - Sun Feb 16 17:32:01 1997 PST | 1997 | 2 | 16 | 17 | 32 | 1 - Sat Feb 16 17:32:01 2097 PST | 2097 | 2 | 16 | 17 | 32 | 1 - Wed Feb 28 17:32:01 1996 PST | 1996 | 2 | 28 | 17 | 32 | 1 - Thu Feb 29 17:32:01 1996 PST | 1996 | 2 | 29 | 17 | 32 | 1 - Fri Mar 01 17:32:01 1996 PST | 1996 | 3 | 1 | 17 | 32 | 1 - Mon Dec 30 17:32:01 1996 PST | 1996 | 12 | 30 | 17 | 32 | 1 - Tue Dec 31 17:32:01 1996 PST | 1996 | 12 | 31 | 17 | 32 | 1 - Wed Jan 01 17:32:01 1997 PST | 1997 | 1 | 1 | 17 | 32 | 1 - Fri Feb 28 17:32:01 1997 PST | 1997 | 2 | 28 | 17 | 32 | 1 - Sat Mar 01 17:32:01 1997 PST | 1997 | 3 | 1 | 17 | 32 | 1 - Tue Dec 30 17:32:01 1997 PST | 1997 | 12 | 30 | 17 | 32 | 1 - Wed Dec 31 17:32:01 1997 PST | 1997 | 12 | 31 | 17 | 32 | 1 - Fri Dec 31 17:32:01 1999 PST | 1999 | 12 | 31 | 17 | 32 | 1 - Sat Jan 01 17:32:01 2000 PST | 2000 | 1 | 1 | 17 | 32 | 1 - Sun Dec 31 17:32:01 2000 PST | 2000 | 12 | 31 | 17 | 32 | 1 - Mon Jan 01 17:32:01 2001 PST | 2001 | 1 | 1 | 17 | 32 | 1 + timestamptz | year | month | day | hour | minute | second +---------------------------+-----------+-------+-----+------+--------+-------- + -infinity | -Infinity | | | | | + infinity | Infinity | | | | | + 1969-12-31 16:00:00-08 | 1969 | 12 | 31 | 16 | 0 | 0 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:02-08 | 1997 | 2 | 10 | 17 | 32 | 2 + 1997-02-10 17:32:01.4-08 | 1997 | 2 | 10 | 17 | 32 | 1.4 + 1997-02-10 17:32:01.5-08 | 1997 | 2 | 10 | 17 | 32 | 1.5 + 1997-02-10 17:32:01.6-08 | 1997 | 2 | 10 | 17 | 32 | 1.6 + 1997-01-02 00:00:00-08 | 1997 | 1 | 2 | 0 | 0 | 0 + 1997-01-02 03:04:05-08 | 1997 | 1 | 2 | 3 | 4 | 5 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-06-10 17:32:01-07 | 1997 | 6 | 10 | 17 | 32 | 1 + 2001-09-22 18:19:20-07 | 2001 | 9 | 22 | 18 | 19 | 20 + 2000-03-15 08:14:01-08 | 2000 | 3 | 15 | 8 | 14 | 1 + 2000-03-15 04:14:02-08 | 2000 | 3 | 15 | 4 | 14 | 2 + 2000-03-15 02:14:03-08 | 2000 | 3 | 15 | 2 | 14 | 3 + 2000-03-15 03:14:04-08 | 2000 | 3 | 15 | 3 | 14 | 4 + 2000-03-15 01:14:05-08 | 2000 | 3 | 15 | 1 | 14 | 5 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:00-08 | 1997 | 2 | 10 | 17 | 32 | 0 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-10 09:32:01-08 | 1997 | 2 | 10 | 9 | 32 | 1 + 1997-02-10 09:32:01-08 | 1997 | 2 | 10 | 9 | 32 | 1 + 1997-02-10 09:32:01-08 | 1997 | 2 | 10 | 9 | 32 | 1 + 1997-02-10 14:32:01-08 | 1997 | 2 | 10 | 14 | 32 | 1 + 1997-07-10 14:32:01-07 | 1997 | 7 | 10 | 14 | 32 | 1 + 1997-06-10 18:32:01-07 | 1997 | 6 | 10 | 18 | 32 | 1 + 1997-02-10 17:32:01-08 | 1997 | 2 | 10 | 17 | 32 | 1 + 1997-02-11 17:32:01-08 | 1997 | 2 | 11 | 17 | 32 | 1 + 1997-02-12 17:32:01-08 | 1997 | 2 | 12 | 17 | 32 | 1 + 1997-02-13 17:32:01-08 | 1997 | 2 | 13 | 17 | 32 | 1 + 1997-02-14 17:32:01-08 | 1997 | 2 | 14 | 17 | 32 | 1 + 1997-02-15 17:32:01-08 | 1997 | 2 | 15 | 17 | 32 | 1 + 1997-02-16 17:32:01-08 | 1997 | 2 | 16 | 17 | 32 | 1 + 0097-02-16 17:32:01-08 BC | -97 | 2 | 16 | 17 | 32 | 1 + 0097-02-16 17:32:01-08 | 97 | 2 | 16 | 17 | 32 | 1 + 0597-02-16 17:32:01-08 | 597 | 2 | 16 | 17 | 32 | 1 + 1097-02-16 17:32:01-08 | 1097 | 2 | 16 | 17 | 32 | 1 + 1697-02-16 17:32:01-08 | 1697 | 2 | 16 | 17 | 32 | 1 + 1797-02-16 17:32:01-08 | 1797 | 2 | 16 | 17 | 32 | 1 + 1897-02-16 17:32:01-08 | 1897 | 2 | 16 | 17 | 32 | 1 + 1997-02-16 17:32:01-08 | 1997 | 2 | 16 | 17 | 32 | 1 + 2097-02-16 17:32:01-08 | 2097 | 2 | 16 | 17 | 32 | 1 + 1996-02-28 17:32:01-08 | 1996 | 2 | 28 | 17 | 32 | 1 + 1996-02-29 17:32:01-08 | 1996 | 2 | 29 | 17 | 32 | 1 + 1996-03-01 17:32:01-08 | 1996 | 3 | 1 | 17 | 32 | 1 + 1996-12-30 17:32:01-08 | 1996 | 12 | 30 | 17 | 32 | 1 + 1996-12-31 17:32:01-08 | 1996 | 12 | 31 | 17 | 32 | 1 + 1997-01-01 17:32:01-08 | 1997 | 1 | 1 | 17 | 32 | 1 + 1997-02-28 17:32:01-08 | 1997 | 2 | 28 | 17 | 32 | 1 + 1997-03-01 17:32:01-08 | 1997 | 3 | 1 | 17 | 32 | 1 + 1997-12-30 17:32:01-08 | 1997 | 12 | 30 | 17 | 32 | 1 + 1997-12-31 17:32:01-08 | 1997 | 12 | 31 | 17 | 32 | 1 + 1999-12-31 17:32:01-08 | 1999 | 12 | 31 | 17 | 32 | 1 + 2000-01-01 17:32:01-08 | 2000 | 1 | 1 | 17 | 32 | 1 + 2000-12-31 17:32:01-08 | 2000 | 12 | 31 | 17 | 32 | 1 + 2001-01-01 17:32:01-08 | 2001 | 1 | 1 | 17 | 32 | 1 (66 rows) SELECT d1 as timestamptz, date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec, date_part( 'usec', d1) AS usec FROM TIMESTAMPTZ_TBL; - timestamptz | quarter | msec | usec ----------------------------------+---------+-------+---------- - -infinity | | | - infinity | | | - 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:02 1997 PST | 1 | 2000 | 2000000 - Mon Feb 10 17:32:01.4 1997 PST | 1 | 1400 | 1400000 - Mon Feb 10 17:32:01.5 1997 PST | 1 | 1500 | 1500000 - 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 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 - Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000 - Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000 - Tue Jun 10 17:32:01 1997 PDT | 2 | 1000 | 1000000 - Sat Sep 22 18:19:20 2001 PDT | 3 | 20000 | 20000000 - Wed Mar 15 08:14:01 2000 PST | 1 | 1000 | 1000000 - Wed Mar 15 04:14:02 2000 PST | 1 | 2000 | 2000000 - Wed Mar 15 02:14:03 2000 PST | 1 | 3000 | 3000000 - Wed Mar 15 03:14:04 2000 PST | 1 | 4000 | 4000000 - Wed Mar 15 01:14:05 2000 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 - Mon Feb 10 17:32:00 1997 PST | 1 | 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:01 1997 PST | 1 | 1000 | 1000000 - Mon Feb 10 09:32:01 1997 PST | 1 | 1000 | 1000000 - Mon Feb 10 09:32:01 1997 PST | 1 | 1000 | 1000000 - Mon Feb 10 09:32:01 1997 PST | 1 | 1000 | 1000000 - Mon Feb 10 14:32:01 1997 PST | 1 | 1000 | 1000000 - Thu Jul 10 14:32:01 1997 PDT | 3 | 1000 | 1000000 - Tue Jun 10 18:32:01 1997 PDT | 2 | 1000 | 1000000 - Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000 - Tue Feb 11 17:32:01 1997 PST | 1 | 1000 | 1000000 - Wed Feb 12 17:32:01 1997 PST | 1 | 1000 | 1000000 - Thu Feb 13 17:32:01 1997 PST | 1 | 1000 | 1000000 - Fri Feb 14 17:32:01 1997 PST | 1 | 1000 | 1000000 - Sat Feb 15 17:32:01 1997 PST | 1 | 1000 | 1000000 - Sun Feb 16 17:32:01 1997 PST | 1 | 1000 | 1000000 - Tue Feb 16 17:32:01 0097 PST BC | 1 | 1000 | 1000000 - Sat Feb 16 17:32:01 0097 PST | 1 | 1000 | 1000000 - Thu Feb 16 17:32:01 0597 PST | 1 | 1000 | 1000000 - Tue Feb 16 17:32:01 1097 PST | 1 | 1000 | 1000000 - Sat Feb 16 17:32:01 1697 PST | 1 | 1000 | 1000000 - Thu Feb 16 17:32:01 1797 PST | 1 | 1000 | 1000000 - Tue Feb 16 17:32:01 1897 PST | 1 | 1000 | 1000000 - Sun Feb 16 17:32:01 1997 PST | 1 | 1000 | 1000000 - Sat Feb 16 17:32:01 2097 PST | 1 | 1000 | 1000000 - Wed Feb 28 17:32:01 1996 PST | 1 | 1000 | 1000000 - Thu Feb 29 17:32:01 1996 PST | 1 | 1000 | 1000000 - Fri Mar 01 17:32:01 1996 PST | 1 | 1000 | 1000000 - Mon Dec 30 17:32:01 1996 PST | 4 | 1000 | 1000000 - Tue Dec 31 17:32:01 1996 PST | 4 | 1000 | 1000000 - Wed Jan 01 17:32:01 1997 PST | 1 | 1000 | 1000000 - Fri Feb 28 17:32:01 1997 PST | 1 | 1000 | 1000000 - Sat Mar 01 17:32:01 1997 PST | 1 | 1000 | 1000000 - Tue Dec 30 17:32:01 1997 PST | 4 | 1000 | 1000000 - Wed Dec 31 17:32:01 1997 PST | 4 | 1000 | 1000000 - Fri Dec 31 17:32:01 1999 PST | 4 | 1000 | 1000000 - Sat Jan 01 17:32:01 2000 PST | 1 | 1000 | 1000000 - Sun Dec 31 17:32:01 2000 PST | 4 | 1000 | 1000000 - Mon Jan 01 17:32:01 2001 PST | 1 | 1000 | 1000000 + timestamptz | quarter | msec | usec +---------------------------+---------+-------+---------- + -infinity | | | + infinity | | | + 1969-12-31 16:00:00-08 | 4 | 0 | 0 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 17:32:02-08 | 1 | 2000 | 2000000 + 1997-02-10 17:32:01.4-08 | 1 | 1400 | 1400000 + 1997-02-10 17:32:01.5-08 | 1 | 1500 | 1500000 + 1997-02-10 17:32:01.6-08 | 1 | 1600 | 1600000 + 1997-01-02 00:00:00-08 | 1 | 0 | 0 + 1997-01-02 03:04:05-08 | 1 | 5000 | 5000000 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-06-10 17:32:01-07 | 2 | 1000 | 1000000 + 2001-09-22 18:19:20-07 | 3 | 20000 | 20000000 + 2000-03-15 08:14:01-08 | 1 | 1000 | 1000000 + 2000-03-15 04:14:02-08 | 1 | 2000 | 2000000 + 2000-03-15 02:14:03-08 | 1 | 3000 | 3000000 + 2000-03-15 03:14:04-08 | 1 | 4000 | 4000000 + 2000-03-15 01:14:05-08 | 1 | 5000 | 5000000 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 17:32:00-08 | 1 | 0 | 0 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 09:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 09:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 09:32:01-08 | 1 | 1000 | 1000000 + 1997-02-10 14:32:01-08 | 1 | 1000 | 1000000 + 1997-07-10 14:32:01-07 | 3 | 1000 | 1000000 + 1997-06-10 18:32:01-07 | 2 | 1000 | 1000000 + 1997-02-10 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-11 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-12 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-13 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-14 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-15 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-16 17:32:01-08 | 1 | 1000 | 1000000 + 0097-02-16 17:32:01-08 BC | 1 | 1000 | 1000000 + 0097-02-16 17:32:01-08 | 1 | 1000 | 1000000 + 0597-02-16 17:32:01-08 | 1 | 1000 | 1000000 + 1097-02-16 17:32:01-08 | 1 | 1000 | 1000000 + 1697-02-16 17:32:01-08 | 1 | 1000 | 1000000 + 1797-02-16 17:32:01-08 | 1 | 1000 | 1000000 + 1897-02-16 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-16 17:32:01-08 | 1 | 1000 | 1000000 + 2097-02-16 17:32:01-08 | 1 | 1000 | 1000000 + 1996-02-28 17:32:01-08 | 1 | 1000 | 1000000 + 1996-02-29 17:32:01-08 | 1 | 1000 | 1000000 + 1996-03-01 17:32:01-08 | 1 | 1000 | 1000000 + 1996-12-30 17:32:01-08 | 4 | 1000 | 1000000 + 1996-12-31 17:32:01-08 | 4 | 1000 | 1000000 + 1997-01-01 17:32:01-08 | 1 | 1000 | 1000000 + 1997-02-28 17:32:01-08 | 1 | 1000 | 1000000 + 1997-03-01 17:32:01-08 | 1 | 1000 | 1000000 + 1997-12-30 17:32:01-08 | 4 | 1000 | 1000000 + 1997-12-31 17:32:01-08 | 4 | 1000 | 1000000 + 1999-12-31 17:32:01-08 | 4 | 1000 | 1000000 + 2000-01-01 17:32:01-08 | 1 | 1000 | 1000000 + 2000-12-31 17:32:01-08 | 4 | 1000 | 1000000 + 2001-01-01 17:32:01-08 | 1 | 1000 | 1000000 (66 rows) SELECT d1 as timestamptz, @@ -973,74 +969,74 @@ SELECT d1 as timestamptz, date_part( 'isodow', d1) AS isodow, date_part( 'dow', d1) AS dow, date_part( 'doy', d1) AS doy FROM TIMESTAMPTZ_TBL; - timestamptz | isoyear | week | isodow | dow | doy ----------------------------------+-----------+------+--------+-----+----- - -infinity | -Infinity | | | | - infinity | Infinity | | | | - Wed Dec 31 16:00:00 1969 PST | 1970 | 1 | 3 | 3 | 365 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:02 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01.4 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01.5 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01.6 1997 PST | 1997 | 7 | 1 | 1 | 41 - Thu Jan 02 00:00:00 1997 PST | 1997 | 1 | 4 | 4 | 2 - Thu Jan 02 03:04:05 1997 PST | 1997 | 1 | 4 | 4 | 2 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Tue Jun 10 17:32:01 1997 PDT | 1997 | 24 | 2 | 2 | 161 - Sat Sep 22 18:19:20 2001 PDT | 2001 | 38 | 6 | 6 | 265 - Wed Mar 15 08:14:01 2000 PST | 2000 | 11 | 3 | 3 | 75 - Wed Mar 15 04:14:02 2000 PST | 2000 | 11 | 3 | 3 | 75 - Wed Mar 15 02:14:03 2000 PST | 2000 | 11 | 3 | 3 | 75 - Wed Mar 15 03:14:04 2000 PST | 2000 | 11 | 3 | 3 | 75 - Wed Mar 15 01:14:05 2000 PST | 2000 | 11 | 3 | 3 | 75 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:00 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 09:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 09:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 09:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Mon Feb 10 14:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Thu Jul 10 14:32:01 1997 PDT | 1997 | 28 | 4 | 4 | 191 - Tue Jun 10 18:32:01 1997 PDT | 1997 | 24 | 2 | 2 | 161 - Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 | 1 | 41 - Tue Feb 11 17:32:01 1997 PST | 1997 | 7 | 2 | 2 | 42 - Wed Feb 12 17:32:01 1997 PST | 1997 | 7 | 3 | 3 | 43 - Thu Feb 13 17:32:01 1997 PST | 1997 | 7 | 4 | 4 | 44 - Fri Feb 14 17:32:01 1997 PST | 1997 | 7 | 5 | 5 | 45 - Sat Feb 15 17:32:01 1997 PST | 1997 | 7 | 6 | 6 | 46 - Sun Feb 16 17:32:01 1997 PST | 1997 | 7 | 7 | 0 | 47 - Tue Feb 16 17:32:01 0097 PST BC | -97 | 7 | 2 | 2 | 47 - Sat Feb 16 17:32:01 0097 PST | 97 | 7 | 6 | 6 | 47 - Thu Feb 16 17:32:01 0597 PST | 597 | 7 | 4 | 4 | 47 - Tue Feb 16 17:32:01 1097 PST | 1097 | 7 | 2 | 2 | 47 - Sat Feb 16 17:32:01 1697 PST | 1697 | 7 | 6 | 6 | 47 - Thu Feb 16 17:32:01 1797 PST | 1797 | 7 | 4 | 4 | 47 - Tue Feb 16 17:32:01 1897 PST | 1897 | 7 | 2 | 2 | 47 - Sun Feb 16 17:32:01 1997 PST | 1997 | 7 | 7 | 0 | 47 - Sat Feb 16 17:32:01 2097 PST | 2097 | 7 | 6 | 6 | 47 - Wed Feb 28 17:32:01 1996 PST | 1996 | 9 | 3 | 3 | 59 - Thu Feb 29 17:32:01 1996 PST | 1996 | 9 | 4 | 4 | 60 - Fri Mar 01 17:32:01 1996 PST | 1996 | 9 | 5 | 5 | 61 - Mon Dec 30 17:32:01 1996 PST | 1997 | 1 | 1 | 1 | 365 - Tue Dec 31 17:32:01 1996 PST | 1997 | 1 | 2 | 2 | 366 - Wed Jan 01 17:32:01 1997 PST | 1997 | 1 | 3 | 3 | 1 - Fri Feb 28 17:32:01 1997 PST | 1997 | 9 | 5 | 5 | 59 - Sat Mar 01 17:32:01 1997 PST | 1997 | 9 | 6 | 6 | 60 - Tue Dec 30 17:32:01 1997 PST | 1998 | 1 | 2 | 2 | 364 - Wed Dec 31 17:32:01 1997 PST | 1998 | 1 | 3 | 3 | 365 - Fri Dec 31 17:32:01 1999 PST | 1999 | 52 | 5 | 5 | 365 - Sat Jan 01 17:32:01 2000 PST | 1999 | 52 | 6 | 6 | 1 - Sun Dec 31 17:32:01 2000 PST | 2000 | 52 | 7 | 0 | 366 - Mon Jan 01 17:32:01 2001 PST | 2001 | 1 | 1 | 1 | 1 + timestamptz | isoyear | week | isodow | dow | doy +---------------------------+-----------+------+--------+-----+----- + -infinity | -Infinity | | | | + infinity | Infinity | | | | + 1969-12-31 16:00:00-08 | 1970 | 1 | 3 | 3 | 365 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:02-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01.4-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01.5-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01.6-08 | 1997 | 7 | 1 | 1 | 41 + 1997-01-02 00:00:00-08 | 1997 | 1 | 4 | 4 | 2 + 1997-01-02 03:04:05-08 | 1997 | 1 | 4 | 4 | 2 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-06-10 17:32:01-07 | 1997 | 24 | 2 | 2 | 161 + 2001-09-22 18:19:20-07 | 2001 | 38 | 6 | 6 | 265 + 2000-03-15 08:14:01-08 | 2000 | 11 | 3 | 3 | 75 + 2000-03-15 04:14:02-08 | 2000 | 11 | 3 | 3 | 75 + 2000-03-15 02:14:03-08 | 2000 | 11 | 3 | 3 | 75 + 2000-03-15 03:14:04-08 | 2000 | 11 | 3 | 3 | 75 + 2000-03-15 01:14:05-08 | 2000 | 11 | 3 | 3 | 75 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:00-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 09:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 09:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 09:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-10 14:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-07-10 14:32:01-07 | 1997 | 28 | 4 | 4 | 191 + 1997-06-10 18:32:01-07 | 1997 | 24 | 2 | 2 | 161 + 1997-02-10 17:32:01-08 | 1997 | 7 | 1 | 1 | 41 + 1997-02-11 17:32:01-08 | 1997 | 7 | 2 | 2 | 42 + 1997-02-12 17:32:01-08 | 1997 | 7 | 3 | 3 | 43 + 1997-02-13 17:32:01-08 | 1997 | 7 | 4 | 4 | 44 + 1997-02-14 17:32:01-08 | 1997 | 7 | 5 | 5 | 45 + 1997-02-15 17:32:01-08 | 1997 | 7 | 6 | 6 | 46 + 1997-02-16 17:32:01-08 | 1997 | 7 | 7 | 0 | 47 + 0097-02-16 17:32:01-08 BC | -97 | 7 | 2 | 2 | 47 + 0097-02-16 17:32:01-08 | 97 | 7 | 6 | 6 | 47 + 0597-02-16 17:32:01-08 | 597 | 7 | 4 | 4 | 47 + 1097-02-16 17:32:01-08 | 1097 | 7 | 2 | 2 | 47 + 1697-02-16 17:32:01-08 | 1697 | 7 | 6 | 6 | 47 + 1797-02-16 17:32:01-08 | 1797 | 7 | 4 | 4 | 47 + 1897-02-16 17:32:01-08 | 1897 | 7 | 2 | 2 | 47 + 1997-02-16 17:32:01-08 | 1997 | 7 | 7 | 0 | 47 + 2097-02-16 17:32:01-08 | 2097 | 7 | 6 | 6 | 47 + 1996-02-28 17:32:01-08 | 1996 | 9 | 3 | 3 | 59 + 1996-02-29 17:32:01-08 | 1996 | 9 | 4 | 4 | 60 + 1996-03-01 17:32:01-08 | 1996 | 9 | 5 | 5 | 61 + 1996-12-30 17:32:01-08 | 1997 | 1 | 1 | 1 | 365 + 1996-12-31 17:32:01-08 | 1997 | 1 | 2 | 2 | 366 + 1997-01-01 17:32:01-08 | 1997 | 1 | 3 | 3 | 1 + 1997-02-28 17:32:01-08 | 1997 | 9 | 5 | 5 | 59 + 1997-03-01 17:32:01-08 | 1997 | 9 | 6 | 6 | 60 + 1997-12-30 17:32:01-08 | 1998 | 1 | 2 | 2 | 364 + 1997-12-31 17:32:01-08 | 1998 | 1 | 3 | 3 | 365 + 1999-12-31 17:32:01-08 | 1999 | 52 | 5 | 5 | 365 + 2000-01-01 17:32:01-08 | 1999 | 52 | 6 | 6 | 1 + 2000-12-31 17:32:01-08 | 2000 | 52 | 7 | 0 | 366 + 2001-01-01 17:32:01-08 | 2001 | 1 | 1 | 1 | 1 (66 rows) SELECT d1 as timestamptz, @@ -1050,74 +1046,74 @@ SELECT d1 as timestamptz, round(date_part( 'julian', d1)) AS julian, date_part( 'epoch', d1) AS epoch FROM TIMESTAMPTZ_TBL; - timestamptz | decade | century | millennium | julian | epoch ----------------------------------+-----------+-----------+------------+-----------+-------------- - -infinity | -Infinity | -Infinity | -Infinity | -Infinity | -Infinity - infinity | Infinity | Infinity | Infinity | Infinity | Infinity - Wed Dec 31 16:00:00 1969 PST | 196 | 20 | 2 | 2440588 | 0 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Mon Feb 10 17:32:02 1997 PST | 199 | 20 | 2 | 2450491 | 855624722 - Mon Feb 10 17:32:01.4 1997 PST | 199 | 20 | 2 | 2450491 | 855624721.4 - Mon Feb 10 17:32:01.5 1997 PST | 199 | 20 | 2 | 2450491 | 855624721.5 - Mon Feb 10 17:32:01.6 1997 PST | 199 | 20 | 2 | 2450491 | 855624721.6 - Thu Jan 02 00:00:00 1997 PST | 199 | 20 | 2 | 2450451 | 852192000 - Thu Jan 02 03:04:05 1997 PST | 199 | 20 | 2 | 2450451 | 852203045 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Tue Jun 10 17:32:01 1997 PDT | 199 | 20 | 2 | 2450611 | 865989121 - Sat Sep 22 18:19:20 2001 PDT | 200 | 21 | 3 | 2452176 | 1001207960 - Wed Mar 15 08:14:01 2000 PST | 200 | 20 | 2 | 2451619 | 953136841 - Wed Mar 15 04:14:02 2000 PST | 200 | 20 | 2 | 2451619 | 953122442 - Wed Mar 15 02:14:03 2000 PST | 200 | 20 | 2 | 2451619 | 953115243 - Wed Mar 15 03:14:04 2000 PST | 200 | 20 | 2 | 2451619 | 953118844 - Wed Mar 15 01:14:05 2000 PST | 200 | 20 | 2 | 2451619 | 953111645 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Mon Feb 10 17:32:00 1997 PST | 199 | 20 | 2 | 2450491 | 855624720 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Mon Feb 10 09:32:01 1997 PST | 199 | 20 | 2 | 2450490 | 855595921 - Mon Feb 10 09:32:01 1997 PST | 199 | 20 | 2 | 2450490 | 855595921 - Mon Feb 10 09:32:01 1997 PST | 199 | 20 | 2 | 2450490 | 855595921 - Mon Feb 10 14:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855613921 - Thu Jul 10 14:32:01 1997 PDT | 199 | 20 | 2 | 2450641 | 868570321 - Tue Jun 10 18:32:01 1997 PDT | 199 | 20 | 2 | 2450611 | 865992721 - Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491 | 855624721 - Tue Feb 11 17:32:01 1997 PST | 199 | 20 | 2 | 2450492 | 855711121 - Wed Feb 12 17:32:01 1997 PST | 199 | 20 | 2 | 2450493 | 855797521 - Thu Feb 13 17:32:01 1997 PST | 199 | 20 | 2 | 2450494 | 855883921 - Fri Feb 14 17:32:01 1997 PST | 199 | 20 | 2 | 2450495 | 855970321 - Sat Feb 15 17:32:01 1997 PST | 199 | 20 | 2 | 2450496 | 856056721 - Sun Feb 16 17:32:01 1997 PST | 199 | 20 | 2 | 2450497 | 856143121 - Tue Feb 16 17:32:01 0097 PST BC | -10 | -1 | -1 | 1686043 | -65192682479 - Sat Feb 16 17:32:01 0097 PST | 9 | 1 | 1 | 1756537 | -59102000879 - Thu Feb 16 17:32:01 0597 PST | 59 | 6 | 1 | 1939158 | -43323546479 - Tue Feb 16 17:32:01 1097 PST | 109 | 11 | 2 | 2121779 | -27545092079 - Sat Feb 16 17:32:01 1697 PST | 169 | 17 | 2 | 2340925 | -8610877679 - Thu Feb 16 17:32:01 1797 PST | 179 | 18 | 2 | 2377449 | -5455204079 - Tue Feb 16 17:32:01 1897 PST | 189 | 19 | 2 | 2413973 | -2299530479 - Sun Feb 16 17:32:01 1997 PST | 199 | 20 | 2 | 2450497 | 856143121 - Sat Feb 16 17:32:01 2097 PST | 209 | 21 | 3 | 2487022 | 4011903121 - Wed Feb 28 17:32:01 1996 PST | 199 | 20 | 2 | 2450143 | 825557521 - Thu Feb 29 17:32:01 1996 PST | 199 | 20 | 2 | 2450144 | 825643921 - Fri Mar 01 17:32:01 1996 PST | 199 | 20 | 2 | 2450145 | 825730321 - Mon Dec 30 17:32:01 1996 PST | 199 | 20 | 2 | 2450449 | 851995921 - Tue Dec 31 17:32:01 1996 PST | 199 | 20 | 2 | 2450450 | 852082321 - Wed Jan 01 17:32:01 1997 PST | 199 | 20 | 2 | 2450451 | 852168721 - Fri Feb 28 17:32:01 1997 PST | 199 | 20 | 2 | 2450509 | 857179921 - Sat Mar 01 17:32:01 1997 PST | 199 | 20 | 2 | 2450510 | 857266321 - Tue Dec 30 17:32:01 1997 PST | 199 | 20 | 2 | 2450814 | 883531921 - Wed Dec 31 17:32:01 1997 PST | 199 | 20 | 2 | 2450815 | 883618321 - Fri Dec 31 17:32:01 1999 PST | 199 | 20 | 2 | 2451545 | 946690321 - Sat Jan 01 17:32:01 2000 PST | 200 | 20 | 2 | 2451546 | 946776721 - Sun Dec 31 17:32:01 2000 PST | 200 | 20 | 2 | 2451911 | 978312721 - Mon Jan 01 17:32:01 2001 PST | 200 | 21 | 3 | 2451912 | 978399121 + timestamptz | decade | century | millennium | julian | epoch +---------------------------+-----------+-----------+------------+-----------+-------------- + -infinity | -Infinity | -Infinity | -Infinity | -Infinity | -Infinity + infinity | Infinity | Infinity | Infinity | Infinity | Infinity + 1969-12-31 16:00:00-08 | 196 | 20 | 2 | 2440588 | 0 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-10 17:32:02-08 | 199 | 20 | 2 | 2450491 | 855624722 + 1997-02-10 17:32:01.4-08 | 199 | 20 | 2 | 2450491 | 855624721.4 + 1997-02-10 17:32:01.5-08 | 199 | 20 | 2 | 2450491 | 855624721.5 + 1997-02-10 17:32:01.6-08 | 199 | 20 | 2 | 2450491 | 855624721.6 + 1997-01-02 00:00:00-08 | 199 | 20 | 2 | 2450451 | 852192000 + 1997-01-02 03:04:05-08 | 199 | 20 | 2 | 2450451 | 852203045 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-06-10 17:32:01-07 | 199 | 20 | 2 | 2450611 | 865989121 + 2001-09-22 18:19:20-07 | 200 | 21 | 3 | 2452176 | 1001207960 + 2000-03-15 08:14:01-08 | 200 | 20 | 2 | 2451619 | 953136841 + 2000-03-15 04:14:02-08 | 200 | 20 | 2 | 2451619 | 953122442 + 2000-03-15 02:14:03-08 | 200 | 20 | 2 | 2451619 | 953115243 + 2000-03-15 03:14:04-08 | 200 | 20 | 2 | 2451619 | 953118844 + 2000-03-15 01:14:05-08 | 200 | 20 | 2 | 2451619 | 953111645 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-10 17:32:00-08 | 199 | 20 | 2 | 2450491 | 855624720 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-10 09:32:01-08 | 199 | 20 | 2 | 2450490 | 855595921 + 1997-02-10 09:32:01-08 | 199 | 20 | 2 | 2450490 | 855595921 + 1997-02-10 09:32:01-08 | 199 | 20 | 2 | 2450490 | 855595921 + 1997-02-10 14:32:01-08 | 199 | 20 | 2 | 2450491 | 855613921 + 1997-07-10 14:32:01-07 | 199 | 20 | 2 | 2450641 | 868570321 + 1997-06-10 18:32:01-07 | 199 | 20 | 2 | 2450611 | 865992721 + 1997-02-10 17:32:01-08 | 199 | 20 | 2 | 2450491 | 855624721 + 1997-02-11 17:32:01-08 | 199 | 20 | 2 | 2450492 | 855711121 + 1997-02-12 17:32:01-08 | 199 | 20 | 2 | 2450493 | 855797521 + 1997-02-13 17:32:01-08 | 199 | 20 | 2 | 2450494 | 855883921 + 1997-02-14 17:32:01-08 | 199 | 20 | 2 | 2450495 | 855970321 + 1997-02-15 17:32:01-08 | 199 | 20 | 2 | 2450496 | 856056721 + 1997-02-16 17:32:01-08 | 199 | 20 | 2 | 2450497 | 856143121 + 0097-02-16 17:32:01-08 BC | -10 | -1 | -1 | 1686043 | -65192682479 + 0097-02-16 17:32:01-08 | 9 | 1 | 1 | 1756537 | -59102000879 + 0597-02-16 17:32:01-08 | 59 | 6 | 1 | 1939158 | -43323546479 + 1097-02-16 17:32:01-08 | 109 | 11 | 2 | 2121779 | -27545092079 + 1697-02-16 17:32:01-08 | 169 | 17 | 2 | 2340925 | -8610877679 + 1797-02-16 17:32:01-08 | 179 | 18 | 2 | 2377449 | -5455204079 + 1897-02-16 17:32:01-08 | 189 | 19 | 2 | 2413973 | -2299530479 + 1997-02-16 17:32:01-08 | 199 | 20 | 2 | 2450497 | 856143121 + 2097-02-16 17:32:01-08 | 209 | 21 | 3 | 2487022 | 4011903121 + 1996-02-28 17:32:01-08 | 199 | 20 | 2 | 2450143 | 825557521 + 1996-02-29 17:32:01-08 | 199 | 20 | 2 | 2450144 | 825643921 + 1996-03-01 17:32:01-08 | 199 | 20 | 2 | 2450145 | 825730321 + 1996-12-30 17:32:01-08 | 199 | 20 | 2 | 2450449 | 851995921 + 1996-12-31 17:32:01-08 | 199 | 20 | 2 | 2450450 | 852082321 + 1997-01-01 17:32:01-08 | 199 | 20 | 2 | 2450451 | 852168721 + 1997-02-28 17:32:01-08 | 199 | 20 | 2 | 2450509 | 857179921 + 1997-03-01 17:32:01-08 | 199 | 20 | 2 | 2450510 | 857266321 + 1997-12-30 17:32:01-08 | 199 | 20 | 2 | 2450814 | 883531921 + 1997-12-31 17:32:01-08 | 199 | 20 | 2 | 2450815 | 883618321 + 1999-12-31 17:32:01-08 | 199 | 20 | 2 | 2451545 | 946690321 + 2000-01-01 17:32:01-08 | 200 | 20 | 2 | 2451546 | 946776721 + 2000-12-31 17:32:01-08 | 200 | 20 | 2 | 2451911 | 978312721 + 2001-01-01 17:32:01-08 | 200 | 21 | 3 | 2451912 | 978399121 (66 rows) SELECT d1 as timestamptz, @@ -1125,74 +1121,74 @@ SELECT d1 as timestamptz, date_part( 'timezone_hour', d1) AS timezone_hour, date_part( 'timezone_minute', d1) AS timezone_minute FROM TIMESTAMPTZ_TBL; - timestamptz | timezone | timezone_hour | timezone_minute ----------------------------------+----------+---------------+----------------- - -infinity | | | - infinity | | | - Wed Dec 31 16:00:00 1969 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:02 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01.4 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01.5 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01.6 1997 PST | -28800 | -8 | 0 - Thu Jan 02 00:00:00 1997 PST | -28800 | -8 | 0 - Thu Jan 02 03:04:05 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Tue Jun 10 17:32:01 1997 PDT | -25200 | -7 | 0 - Sat Sep 22 18:19:20 2001 PDT | -25200 | -7 | 0 - Wed Mar 15 08:14:01 2000 PST | -28800 | -8 | 0 - Wed Mar 15 04:14:02 2000 PST | -28800 | -8 | 0 - Wed Mar 15 02:14:03 2000 PST | -28800 | -8 | 0 - Wed Mar 15 03:14:04 2000 PST | -28800 | -8 | 0 - Wed Mar 15 01:14:05 2000 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:00 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 09:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 09:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 09:32:01 1997 PST | -28800 | -8 | 0 - Mon Feb 10 14:32:01 1997 PST | -28800 | -8 | 0 - Thu Jul 10 14:32:01 1997 PDT | -25200 | -7 | 0 - Tue Jun 10 18:32:01 1997 PDT | -25200 | -7 | 0 - Mon Feb 10 17:32:01 1997 PST | -28800 | -8 | 0 - Tue Feb 11 17:32:01 1997 PST | -28800 | -8 | 0 - Wed Feb 12 17:32:01 1997 PST | -28800 | -8 | 0 - Thu Feb 13 17:32:01 1997 PST | -28800 | -8 | 0 - Fri Feb 14 17:32:01 1997 PST | -28800 | -8 | 0 - Sat Feb 15 17:32:01 1997 PST | -28800 | -8 | 0 - Sun Feb 16 17:32:01 1997 PST | -28800 | -8 | 0 - Tue Feb 16 17:32:01 0097 PST BC | -28800 | -8 | 0 - Sat Feb 16 17:32:01 0097 PST | -28800 | -8 | 0 - Thu Feb 16 17:32:01 0597 PST | -28800 | -8 | 0 - Tue Feb 16 17:32:01 1097 PST | -28800 | -8 | 0 - Sat Feb 16 17:32:01 1697 PST | -28800 | -8 | 0 - Thu Feb 16 17:32:01 1797 PST | -28800 | -8 | 0 - Tue Feb 16 17:32:01 1897 PST | -28800 | -8 | 0 - Sun Feb 16 17:32:01 1997 PST | -28800 | -8 | 0 - Sat Feb 16 17:32:01 2097 PST | -28800 | -8 | 0 - Wed Feb 28 17:32:01 1996 PST | -28800 | -8 | 0 - Thu Feb 29 17:32:01 1996 PST | -28800 | -8 | 0 - Fri Mar 01 17:32:01 1996 PST | -28800 | -8 | 0 - Mon Dec 30 17:32:01 1996 PST | -28800 | -8 | 0 - Tue Dec 31 17:32:01 1996 PST | -28800 | -8 | 0 - Wed Jan 01 17:32:01 1997 PST | -28800 | -8 | 0 - Fri Feb 28 17:32:01 1997 PST | -28800 | -8 | 0 - Sat Mar 01 17:32:01 1997 PST | -28800 | -8 | 0 - Tue Dec 30 17:32:01 1997 PST | -28800 | -8 | 0 - Wed Dec 31 17:32:01 1997 PST | -28800 | -8 | 0 - Fri Dec 31 17:32:01 1999 PST | -28800 | -8 | 0 - Sat Jan 01 17:32:01 2000 PST | -28800 | -8 | 0 - Sun Dec 31 17:32:01 2000 PST | -28800 | -8 | 0 - Mon Jan 01 17:32:01 2001 PST | -28800 | -8 | 0 + timestamptz | timezone | timezone_hour | timezone_minute +---------------------------+----------+---------------+----------------- + -infinity | | | + infinity | | | + 1969-12-31 16:00:00-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-10 17:32:02-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01.4-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01.5-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01.6-08 | -28800 | -8 | 0 + 1997-01-02 00:00:00-08 | -28800 | -8 | 0 + 1997-01-02 03:04:05-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-06-10 17:32:01-07 | -25200 | -7 | 0 + 2001-09-22 18:19:20-07 | -25200 | -7 | 0 + 2000-03-15 08:14:01-08 | -28800 | -8 | 0 + 2000-03-15 04:14:02-08 | -28800 | -8 | 0 + 2000-03-15 02:14:03-08 | -28800 | -8 | 0 + 2000-03-15 03:14:04-08 | -28800 | -8 | 0 + 2000-03-15 01:14:05-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-10 17:32:00-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-10 09:32:01-08 | -28800 | -8 | 0 + 1997-02-10 09:32:01-08 | -28800 | -8 | 0 + 1997-02-10 09:32:01-08 | -28800 | -8 | 0 + 1997-02-10 14:32:01-08 | -28800 | -8 | 0 + 1997-07-10 14:32:01-07 | -25200 | -7 | 0 + 1997-06-10 18:32:01-07 | -25200 | -7 | 0 + 1997-02-10 17:32:01-08 | -28800 | -8 | 0 + 1997-02-11 17:32:01-08 | -28800 | -8 | 0 + 1997-02-12 17:32:01-08 | -28800 | -8 | 0 + 1997-02-13 17:32:01-08 | -28800 | -8 | 0 + 1997-02-14 17:32:01-08 | -28800 | -8 | 0 + 1997-02-15 17:32:01-08 | -28800 | -8 | 0 + 1997-02-16 17:32:01-08 | -28800 | -8 | 0 + 0097-02-16 17:32:01-08 BC | -28800 | -8 | 0 + 0097-02-16 17:32:01-08 | -28800 | -8 | 0 + 0597-02-16 17:32:01-08 | -28800 | -8 | 0 + 1097-02-16 17:32:01-08 | -28800 | -8 | 0 + 1697-02-16 17:32:01-08 | -28800 | -8 | 0 + 1797-02-16 17:32:01-08 | -28800 | -8 | 0 + 1897-02-16 17:32:01-08 | -28800 | -8 | 0 + 1997-02-16 17:32:01-08 | -28800 | -8 | 0 + 2097-02-16 17:32:01-08 | -28800 | -8 | 0 + 1996-02-28 17:32:01-08 | -28800 | -8 | 0 + 1996-02-29 17:32:01-08 | -28800 | -8 | 0 + 1996-03-01 17:32:01-08 | -28800 | -8 | 0 + 1996-12-30 17:32:01-08 | -28800 | -8 | 0 + 1996-12-31 17:32:01-08 | -28800 | -8 | 0 + 1997-01-01 17:32:01-08 | -28800 | -8 | 0 + 1997-02-28 17:32:01-08 | -28800 | -8 | 0 + 1997-03-01 17:32:01-08 | -28800 | -8 | 0 + 1997-12-30 17:32:01-08 | -28800 | -8 | 0 + 1997-12-31 17:32:01-08 | -28800 | -8 | 0 + 1999-12-31 17:32:01-08 | -28800 | -8 | 0 + 2000-01-01 17:32:01-08 | -28800 | -8 | 0 + 2000-12-31 17:32:01-08 | -28800 | -8 | 0 + 2001-01-01 17:32:01-08 | -28800 | -8 | 0 (66 rows) -- extract implementation is mostly the same as date_part, so only @@ -1204,74 +1200,74 @@ SELECT d1 as "timestamp", round(extract(julian from d1)) AS julian, extract(epoch from d1) AS epoch FROM TIMESTAMPTZ_TBL; - timestamp | microseconds | milliseconds | seconds | julian | epoch ----------------------------------+--------------+--------------+-----------+-----------+--------------------- - -infinity | | | | -Infinity | -Infinity - infinity | | | | Infinity | Infinity - Wed Dec 31 16:00:00 1969 PST | 0 | 0.000 | 0.000000 | 2440588 | 0.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Mon Feb 10 17:32:02 1997 PST | 2000000 | 2000.000 | 2.000000 | 2450491 | 855624722.000000 - Mon Feb 10 17:32:01.4 1997 PST | 1400000 | 1400.000 | 1.400000 | 2450491 | 855624721.400000 - Mon Feb 10 17:32:01.5 1997 PST | 1500000 | 1500.000 | 1.500000 | 2450491 | 855624721.500000 - Mon Feb 10 17:32:01.6 1997 PST | 1600000 | 1600.000 | 1.600000 | 2450491 | 855624721.600000 - Thu Jan 02 00:00:00 1997 PST | 0 | 0.000 | 0.000000 | 2450451 | 852192000.000000 - Thu Jan 02 03:04:05 1997 PST | 5000000 | 5000.000 | 5.000000 | 2450451 | 852203045.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Tue Jun 10 17:32:01 1997 PDT | 1000000 | 1000.000 | 1.000000 | 2450611 | 865989121.000000 - Sat Sep 22 18:19:20 2001 PDT | 20000000 | 20000.000 | 20.000000 | 2452176 | 1001207960.000000 - Wed Mar 15 08:14:01 2000 PST | 1000000 | 1000.000 | 1.000000 | 2451619 | 953136841.000000 - Wed Mar 15 04:14:02 2000 PST | 2000000 | 2000.000 | 2.000000 | 2451619 | 953122442.000000 - Wed Mar 15 02:14:03 2000 PST | 3000000 | 3000.000 | 3.000000 | 2451619 | 953115243.000000 - Wed Mar 15 03:14:04 2000 PST | 4000000 | 4000.000 | 4.000000 | 2451619 | 953118844.000000 - Wed Mar 15 01:14:05 2000 PST | 5000000 | 5000.000 | 5.000000 | 2451619 | 953111645.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Mon Feb 10 17:32:00 1997 PST | 0 | 0.000 | 0.000000 | 2450491 | 855624720.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Mon Feb 10 09:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450490 | 855595921.000000 - Mon Feb 10 09:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450490 | 855595921.000000 - Mon Feb 10 09:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450490 | 855595921.000000 - Mon Feb 10 14:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855613921.000000 - Thu Jul 10 14:32:01 1997 PDT | 1000000 | 1000.000 | 1.000000 | 2450641 | 868570321.000000 - Tue Jun 10 18:32:01 1997 PDT | 1000000 | 1000.000 | 1.000000 | 2450611 | 865992721.000000 - Mon Feb 10 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 - Tue Feb 11 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450492 | 855711121.000000 - Wed Feb 12 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450493 | 855797521.000000 - Thu Feb 13 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450494 | 855883921.000000 - Fri Feb 14 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450495 | 855970321.000000 - Sat Feb 15 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450496 | 856056721.000000 - Sun Feb 16 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450497 | 856143121.000000 - Tue Feb 16 17:32:01 0097 PST BC | 1000000 | 1000.000 | 1.000000 | 1686043 | -65192682479.000000 - Sat Feb 16 17:32:01 0097 PST | 1000000 | 1000.000 | 1.000000 | 1756537 | -59102000879.000000 - Thu Feb 16 17:32:01 0597 PST | 1000000 | 1000.000 | 1.000000 | 1939158 | -43323546479.000000 - Tue Feb 16 17:32:01 1097 PST | 1000000 | 1000.000 | 1.000000 | 2121779 | -27545092079.000000 - Sat Feb 16 17:32:01 1697 PST | 1000000 | 1000.000 | 1.000000 | 2340925 | -8610877679.000000 - Thu Feb 16 17:32:01 1797 PST | 1000000 | 1000.000 | 1.000000 | 2377449 | -5455204079.000000 - Tue Feb 16 17:32:01 1897 PST | 1000000 | 1000.000 | 1.000000 | 2413973 | -2299530479.000000 - Sun Feb 16 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450497 | 856143121.000000 - Sat Feb 16 17:32:01 2097 PST | 1000000 | 1000.000 | 1.000000 | 2487022 | 4011903121.000000 - Wed Feb 28 17:32:01 1996 PST | 1000000 | 1000.000 | 1.000000 | 2450143 | 825557521.000000 - Thu Feb 29 17:32:01 1996 PST | 1000000 | 1000.000 | 1.000000 | 2450144 | 825643921.000000 - Fri Mar 01 17:32:01 1996 PST | 1000000 | 1000.000 | 1.000000 | 2450145 | 825730321.000000 - Mon Dec 30 17:32:01 1996 PST | 1000000 | 1000.000 | 1.000000 | 2450449 | 851995921.000000 - Tue Dec 31 17:32:01 1996 PST | 1000000 | 1000.000 | 1.000000 | 2450450 | 852082321.000000 - Wed Jan 01 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450451 | 852168721.000000 - Fri Feb 28 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450509 | 857179921.000000 - Sat Mar 01 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450510 | 857266321.000000 - Tue Dec 30 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450814 | 883531921.000000 - Wed Dec 31 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450815 | 883618321.000000 - Fri Dec 31 17:32:01 1999 PST | 1000000 | 1000.000 | 1.000000 | 2451545 | 946690321.000000 - Sat Jan 01 17:32:01 2000 PST | 1000000 | 1000.000 | 1.000000 | 2451546 | 946776721.000000 - Sun Dec 31 17:32:01 2000 PST | 1000000 | 1000.000 | 1.000000 | 2451911 | 978312721.000000 - Mon Jan 01 17:32:01 2001 PST | 1000000 | 1000.000 | 1.000000 | 2451912 | 978399121.000000 + timestamp | microseconds | milliseconds | seconds | julian | epoch +---------------------------+--------------+--------------+-----------+-----------+--------------------- + -infinity | | | | -Infinity | -Infinity + infinity | | | | Infinity | Infinity + 1969-12-31 16:00:00-08 | 0 | 0.000 | 0.000000 | 2440588 | 0.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-10 17:32:02-08 | 2000000 | 2000.000 | 2.000000 | 2450491 | 855624722.000000 + 1997-02-10 17:32:01.4-08 | 1400000 | 1400.000 | 1.400000 | 2450491 | 855624721.400000 + 1997-02-10 17:32:01.5-08 | 1500000 | 1500.000 | 1.500000 | 2450491 | 855624721.500000 + 1997-02-10 17:32:01.6-08 | 1600000 | 1600.000 | 1.600000 | 2450491 | 855624721.600000 + 1997-01-02 00:00:00-08 | 0 | 0.000 | 0.000000 | 2450451 | 852192000.000000 + 1997-01-02 03:04:05-08 | 5000000 | 5000.000 | 5.000000 | 2450451 | 852203045.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-06-10 17:32:01-07 | 1000000 | 1000.000 | 1.000000 | 2450611 | 865989121.000000 + 2001-09-22 18:19:20-07 | 20000000 | 20000.000 | 20.000000 | 2452176 | 1001207960.000000 + 2000-03-15 08:14:01-08 | 1000000 | 1000.000 | 1.000000 | 2451619 | 953136841.000000 + 2000-03-15 04:14:02-08 | 2000000 | 2000.000 | 2.000000 | 2451619 | 953122442.000000 + 2000-03-15 02:14:03-08 | 3000000 | 3000.000 | 3.000000 | 2451619 | 953115243.000000 + 2000-03-15 03:14:04-08 | 4000000 | 4000.000 | 4.000000 | 2451619 | 953118844.000000 + 2000-03-15 01:14:05-08 | 5000000 | 5000.000 | 5.000000 | 2451619 | 953111645.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-10 17:32:00-08 | 0 | 0.000 | 0.000000 | 2450491 | 855624720.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-10 09:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450490 | 855595921.000000 + 1997-02-10 09:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450490 | 855595921.000000 + 1997-02-10 09:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450490 | 855595921.000000 + 1997-02-10 14:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855613921.000000 + 1997-07-10 14:32:01-07 | 1000000 | 1000.000 | 1.000000 | 2450641 | 868570321.000000 + 1997-06-10 18:32:01-07 | 1000000 | 1000.000 | 1.000000 | 2450611 | 865992721.000000 + 1997-02-10 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450491 | 855624721.000000 + 1997-02-11 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450492 | 855711121.000000 + 1997-02-12 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450493 | 855797521.000000 + 1997-02-13 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450494 | 855883921.000000 + 1997-02-14 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450495 | 855970321.000000 + 1997-02-15 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450496 | 856056721.000000 + 1997-02-16 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450497 | 856143121.000000 + 0097-02-16 17:32:01-08 BC | 1000000 | 1000.000 | 1.000000 | 1686043 | -65192682479.000000 + 0097-02-16 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 1756537 | -59102000879.000000 + 0597-02-16 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 1939158 | -43323546479.000000 + 1097-02-16 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2121779 | -27545092079.000000 + 1697-02-16 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2340925 | -8610877679.000000 + 1797-02-16 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2377449 | -5455204079.000000 + 1897-02-16 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2413973 | -2299530479.000000 + 1997-02-16 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450497 | 856143121.000000 + 2097-02-16 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2487022 | 4011903121.000000 + 1996-02-28 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450143 | 825557521.000000 + 1996-02-29 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450144 | 825643921.000000 + 1996-03-01 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450145 | 825730321.000000 + 1996-12-30 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450449 | 851995921.000000 + 1996-12-31 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450450 | 852082321.000000 + 1997-01-01 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450451 | 852168721.000000 + 1997-02-28 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450509 | 857179921.000000 + 1997-03-01 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450510 | 857266321.000000 + 1997-12-30 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450814 | 883531921.000000 + 1997-12-31 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2450815 | 883618321.000000 + 1999-12-31 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2451545 | 946690321.000000 + 2000-01-01 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2451546 | 946776721.000000 + 2000-12-31 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2451911 | 978312721.000000 + 2001-01-01 17:32:01-08 | 1000000 | 1000.000 | 1.000000 | 2451912 | 978399121.000000 (66 rows) -- value near upper bound uses special case in code @@ -2167,6 +2163,7 @@ SELECT to_char(now(), 'OF') as "OF", to_char(now(), 'TZH:TZM') as "TZH:TZM"; (1 row) RESET timezone; +DROP TABLE TIMESTAMPTZ_TBL; CREATE TABLE TIMESTAMPTZ_TST (a int , b timestamptz); -- Test year field value with len > 4 INSERT INTO TIMESTAMPTZ_TST VALUES(1, 'Sat Mar 12 23:58:48 1000 IST'); @@ -2177,14 +2174,14 @@ INSERT INTO TIMESTAMPTZ_TST VALUES(4, '100000312 23:58:48 IST'); INSERT INTO TIMESTAMPTZ_TST VALUES(4, '1000000312 23:58:48 IST'); --Verify data SELECT * FROM TIMESTAMPTZ_TST ORDER BY a; - a | b ----+-------------------------------- - 1 | Wed Mar 12 13:58:48 1000 PST - 2 | Sun Mar 12 14:58:48 10000 PDT - 3 | Sun Mar 12 14:58:48 100000 PDT - 3 | Sun Mar 12 14:58:48 10000 PDT - 4 | Sun Mar 12 14:58:48 10000 PDT - 4 | Sun Mar 12 14:58:48 100000 PDT + a | b +---+-------------------------- + 1 | 1000-03-12 13:58:48-08 + 2 | 10000-03-12 14:58:48-07 + 3 | 100000-03-12 14:58:48-07 + 3 | 10000-03-12 14:58:48-07 + 4 | 10000-03-12 14:58:48-07 + 4 | 100000-03-12 14:58:48-07 (6 rows) --Cleanup @@ -2193,21 +2190,21 @@ DROP TABLE TIMESTAMPTZ_TST; set TimeZone to 'America/New_York'; -- numeric timezone SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33); - make_timestamptz ---------------------------------- - Sun Jul 15 08:15:55.33 1973 EDT + make_timestamptz +--------------------------- + 1973-07-15 08:15:55.33-04 (1 row) SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33, '+2'); - make_timestamptz ---------------------------------- - Sun Jul 15 02:15:55.33 1973 EDT + make_timestamptz +--------------------------- + 1973-07-15 02:15:55.33-04 (1 row) SELECT make_timestamptz(1973, 07, 15, 08, 15, 55.33, '-2'); - make_timestamptz ---------------------------------- - Sun Jul 15 06:15:55.33 1973 EDT + make_timestamptz +--------------------------- + 1973-07-15 06:15:55.33-04 (1 row) WITH tzs (tz) AS (VALUES @@ -2216,23 +2213,23 @@ WITH tzs (tz) AS (VALUES ('+10:00:1'), ('+10:00:01'), ('+10:00:10')) SELECT make_timestamptz(2010, 2, 27, 3, 45, 00, tz), tz FROM tzs; - make_timestamptz | tz -------------------------------+----------- - Fri Feb 26 21:45:00 2010 EST | +1 - Fri Feb 26 21:45:00 2010 EST | +1: - Fri Feb 26 21:45:00 2010 EST | +1:0 - Fri Feb 26 21:45:00 2010 EST | +100 - Fri Feb 26 21:45:00 2010 EST | +1:00 - Fri Feb 26 21:45:00 2010 EST | +01:00 - Fri Feb 26 12:45:00 2010 EST | +10 - Fri Feb 26 12:45:00 2010 EST | +1000 - Fri Feb 26 12:45:00 2010 EST | +10: - Fri Feb 26 12:45:00 2010 EST | +10:0 - Fri Feb 26 12:45:00 2010 EST | +10:00 - Fri Feb 26 12:45:00 2010 EST | +10:00: - Fri Feb 26 12:44:59 2010 EST | +10:00:1 - Fri Feb 26 12:44:59 2010 EST | +10:00:01 - Fri Feb 26 12:44:50 2010 EST | +10:00:10 + make_timestamptz | tz +------------------------+----------- + 2010-02-26 21:45:00-05 | +1 + 2010-02-26 21:45:00-05 | +1: + 2010-02-26 21:45:00-05 | +1:0 + 2010-02-26 21:45:00-05 | +100 + 2010-02-26 21:45:00-05 | +1:00 + 2010-02-26 21:45:00-05 | +01:00 + 2010-02-26 12:45:00-05 | +10 + 2010-02-26 12:45:00-05 | +1000 + 2010-02-26 12:45:00-05 | +10: + 2010-02-26 12:45:00-05 | +10:0 + 2010-02-26 12:45:00-05 | +10:00 + 2010-02-26 12:45:00-05 | +10:00: + 2010-02-26 12:44:59-05 | +10:00:1 + 2010-02-26 12:44:59-05 | +10:00:01 + 2010-02-26 12:44:50-05 | +10:00:10 (15 rows) -- these should fail @@ -2258,42 +2255,42 @@ SELECT make_timestamptz(2014, 12, 10, 0, 0, 0, 'Europe/Prague') = timestamptz '2 (1 row) SELECT make_timestamptz(2014, 12, 10, 0, 0, 0, 'Europe/Prague') AT TIME ZONE 'UTC'; - timezone --------------------------- - Tue Dec 09 23:00:00 2014 + timezone +--------------------- + 2014-12-09 23:00:00 (1 row) SELECT make_timestamptz(1846, 12, 10, 0, 0, 0, 'Asia/Manila') AT TIME ZONE 'UTC'; - timezone --------------------------- - Wed Dec 09 15:56:00 1846 + timezone +--------------------- + 1846-12-09 15:56:00 (1 row) SELECT make_timestamptz(1881, 12, 10, 0, 0, 0, 'Europe/Paris') AT TIME ZONE 'UTC'; - timezone --------------------------- - Fri Dec 09 23:50:39 1881 + timezone +--------------------- + 1881-12-09 23:50:39 (1 row) SELECT make_timestamptz(1910, 12, 24, 0, 0, 0, 'Nehwon/Lankhmar'); ERROR: time zone "Nehwon/Lankhmar" not recognized -- abbreviations SELECT make_timestamptz(2008, 12, 10, 10, 10, 10, 'EST'); - make_timestamptz ------------------------------- - Wed Dec 10 10:10:10 2008 EST + make_timestamptz +------------------------ + 2008-12-10 10:10:10-05 (1 row) SELECT make_timestamptz(2008, 12, 10, 10, 10, 10, 'EDT'); - make_timestamptz ------------------------------- - Wed Dec 10 09:10:10 2008 EST + make_timestamptz +------------------------ + 2008-12-10 09:10:10-05 (1 row) SELECT make_timestamptz(2014, 12, 10, 10, 10, 10, 'PST8PDT'); - make_timestamptz ------------------------------- - Wed Dec 10 13:10:10 2014 EST + make_timestamptz +------------------------ + 2014-12-10 13:10:10-05 (1 row) RESET TimeZone; @@ -2304,376 +2301,376 @@ RESET TimeZone; -- SET TimeZone to 'UTC'; SELECT '2011-03-27 00:00:00 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 21:00:00 2011 UTC + timestamptz +------------------------ + 2011-03-26 21:00:00+00 (1 row) SELECT '2011-03-27 01:00:00 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 22:00:00 2011 UTC + timestamptz +------------------------ + 2011-03-26 22:00:00+00 (1 row) SELECT '2011-03-27 01:59:59 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 22:59:59 2011 UTC + timestamptz +------------------------ + 2011-03-26 22:59:59+00 (1 row) SELECT '2011-03-27 02:00:00 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 23:00:00 2011 UTC + timestamptz +------------------------ + 2011-03-26 23:00:00+00 (1 row) SELECT '2011-03-27 02:00:01 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 23:00:01 2011 UTC + timestamptz +------------------------ + 2011-03-26 23:00:01+00 (1 row) SELECT '2011-03-27 02:59:59 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 23:59:59 2011 UTC + timestamptz +------------------------ + 2011-03-26 23:59:59+00 (1 row) SELECT '2011-03-27 03:00:00 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 23:00:00 2011 UTC + timestamptz +------------------------ + 2011-03-26 23:00:00+00 (1 row) SELECT '2011-03-27 03:00:01 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 23:00:01 2011 UTC + timestamptz +------------------------ + 2011-03-26 23:00:01+00 (1 row) SELECT '2011-03-27 04:00:00 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sun Mar 27 00:00:00 2011 UTC + timestamptz +------------------------ + 2011-03-27 00:00:00+00 (1 row) SELECT '2011-03-27 00:00:00 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 21:00:00 2011 UTC + timestamptz +------------------------ + 2011-03-26 21:00:00+00 (1 row) SELECT '2011-03-27 01:00:00 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 22:00:00 2011 UTC + timestamptz +------------------------ + 2011-03-26 22:00:00+00 (1 row) SELECT '2011-03-27 01:59:59 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 22:59:59 2011 UTC + timestamptz +------------------------ + 2011-03-26 22:59:59+00 (1 row) SELECT '2011-03-27 02:00:00 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 22:00:00 2011 UTC + timestamptz +------------------------ + 2011-03-26 22:00:00+00 (1 row) SELECT '2011-03-27 02:00:01 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 22:00:01 2011 UTC + timestamptz +------------------------ + 2011-03-26 22:00:01+00 (1 row) SELECT '2011-03-27 02:59:59 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 22:59:59 2011 UTC + timestamptz +------------------------ + 2011-03-26 22:59:59+00 (1 row) SELECT '2011-03-27 03:00:00 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 23:00:00 2011 UTC + timestamptz +------------------------ + 2011-03-26 23:00:00+00 (1 row) SELECT '2011-03-27 03:00:01 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Mar 26 23:00:01 2011 UTC + timestamptz +------------------------ + 2011-03-26 23:00:01+00 (1 row) SELECT '2011-03-27 04:00:00 MSK'::timestamptz; - timestamptz ------------------------------- - Sun Mar 27 00:00:00 2011 UTC + timestamptz +------------------------ + 2011-03-27 00:00:00+00 (1 row) SELECT '2014-10-26 00:00:00 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Oct 25 20:00:00 2014 UTC + timestamptz +------------------------ + 2014-10-25 20:00:00+00 (1 row) SELECT '2014-10-26 00:59:59 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Oct 25 20:59:59 2014 UTC + timestamptz +------------------------ + 2014-10-25 20:59:59+00 (1 row) SELECT '2014-10-26 01:00:00 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Oct 25 22:00:00 2014 UTC + timestamptz +------------------------ + 2014-10-25 22:00:00+00 (1 row) SELECT '2014-10-26 01:00:01 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Oct 25 22:00:01 2014 UTC + timestamptz +------------------------ + 2014-10-25 22:00:01+00 (1 row) SELECT '2014-10-26 02:00:00 Europe/Moscow'::timestamptz; - timestamptz ------------------------------- - Sat Oct 25 23:00:00 2014 UTC + timestamptz +------------------------ + 2014-10-25 23:00:00+00 (1 row) SELECT '2014-10-26 00:00:00 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Oct 25 20:00:00 2014 UTC + timestamptz +------------------------ + 2014-10-25 20:00:00+00 (1 row) SELECT '2014-10-26 00:59:59 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Oct 25 20:59:59 2014 UTC + timestamptz +------------------------ + 2014-10-25 20:59:59+00 (1 row) SELECT '2014-10-26 01:00:00 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Oct 25 22:00:00 2014 UTC + timestamptz +------------------------ + 2014-10-25 22:00:00+00 (1 row) SELECT '2014-10-26 01:00:01 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Oct 25 22:00:01 2014 UTC + timestamptz +------------------------ + 2014-10-25 22:00:01+00 (1 row) SELECT '2014-10-26 02:00:00 MSK'::timestamptz; - timestamptz ------------------------------- - Sat Oct 25 23:00:00 2014 UTC + timestamptz +------------------------ + 2014-10-25 23:00:00+00 (1 row) SELECT '2011-03-27 00:00:00'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Mar 26 21:00:00 2011 UTC + timezone +------------------------ + 2011-03-26 21:00:00+00 (1 row) SELECT '2011-03-27 01:00:00'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Mar 26 22:00:00 2011 UTC + timezone +------------------------ + 2011-03-26 22:00:00+00 (1 row) SELECT '2011-03-27 01:59:59'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Mar 26 22:59:59 2011 UTC + timezone +------------------------ + 2011-03-26 22:59:59+00 (1 row) SELECT '2011-03-27 02:00:00'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Mar 26 23:00:00 2011 UTC + timezone +------------------------ + 2011-03-26 23:00:00+00 (1 row) SELECT '2011-03-27 02:00:01'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Mar 26 23:00:01 2011 UTC + timezone +------------------------ + 2011-03-26 23:00:01+00 (1 row) SELECT '2011-03-27 02:59:59'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Mar 26 23:59:59 2011 UTC + timezone +------------------------ + 2011-03-26 23:59:59+00 (1 row) SELECT '2011-03-27 03:00:00'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Mar 26 23:00:00 2011 UTC + timezone +------------------------ + 2011-03-26 23:00:00+00 (1 row) SELECT '2011-03-27 03:00:01'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Mar 26 23:00:01 2011 UTC + timezone +------------------------ + 2011-03-26 23:00:01+00 (1 row) SELECT '2011-03-27 04:00:00'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sun Mar 27 00:00:00 2011 UTC + timezone +------------------------ + 2011-03-27 00:00:00+00 (1 row) SELECT '2011-03-27 00:00:00'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Mar 26 21:00:00 2011 UTC + timezone +------------------------ + 2011-03-26 21:00:00+00 (1 row) SELECT '2011-03-27 01:00:00'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Mar 26 22:00:00 2011 UTC + timezone +------------------------ + 2011-03-26 22:00:00+00 (1 row) SELECT '2011-03-27 01:59:59'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Mar 26 22:59:59 2011 UTC + timezone +------------------------ + 2011-03-26 22:59:59+00 (1 row) SELECT '2011-03-27 02:00:00'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Mar 26 22:00:00 2011 UTC + timezone +------------------------ + 2011-03-26 22:00:00+00 (1 row) SELECT '2011-03-27 02:00:01'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Mar 26 22:00:01 2011 UTC + timezone +------------------------ + 2011-03-26 22:00:01+00 (1 row) SELECT '2011-03-27 02:59:59'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Mar 26 22:59:59 2011 UTC + timezone +------------------------ + 2011-03-26 22:59:59+00 (1 row) SELECT '2011-03-27 03:00:00'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Mar 26 23:00:00 2011 UTC + timezone +------------------------ + 2011-03-26 23:00:00+00 (1 row) SELECT '2011-03-27 03:00:01'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Mar 26 23:00:01 2011 UTC + timezone +------------------------ + 2011-03-26 23:00:01+00 (1 row) SELECT '2011-03-27 04:00:00'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sun Mar 27 00:00:00 2011 UTC + timezone +------------------------ + 2011-03-27 00:00:00+00 (1 row) SELECT '2014-10-26 00:00:00'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Oct 25 20:00:00 2014 UTC + timezone +------------------------ + 2014-10-25 20:00:00+00 (1 row) SELECT '2014-10-26 00:59:59'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Oct 25 20:59:59 2014 UTC + timezone +------------------------ + 2014-10-25 20:59:59+00 (1 row) SELECT '2014-10-26 01:00:00'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Oct 25 22:00:00 2014 UTC + timezone +------------------------ + 2014-10-25 22:00:00+00 (1 row) SELECT '2014-10-26 01:00:01'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Oct 25 22:00:01 2014 UTC + timezone +------------------------ + 2014-10-25 22:00:01+00 (1 row) SELECT '2014-10-26 02:00:00'::timestamp AT TIME ZONE 'Europe/Moscow'; - timezone ------------------------------- - Sat Oct 25 23:00:00 2014 UTC + timezone +------------------------ + 2014-10-25 23:00:00+00 (1 row) SELECT '2014-10-26 00:00:00'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Oct 25 20:00:00 2014 UTC + timezone +------------------------ + 2014-10-25 20:00:00+00 (1 row) SELECT '2014-10-26 00:59:59'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Oct 25 20:59:59 2014 UTC + timezone +------------------------ + 2014-10-25 20:59:59+00 (1 row) SELECT '2014-10-26 01:00:00'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Oct 25 22:00:00 2014 UTC + timezone +------------------------ + 2014-10-25 22:00:00+00 (1 row) SELECT '2014-10-26 01:00:01'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Oct 25 22:00:01 2014 UTC + timezone +------------------------ + 2014-10-25 22:00:01+00 (1 row) SELECT '2014-10-26 02:00:00'::timestamp AT TIME ZONE 'MSK'; - timezone ------------------------------- - Sat Oct 25 23:00:00 2014 UTC + timezone +------------------------ + 2014-10-25 23:00:00+00 (1 row) SELECT make_timestamptz(2014, 10, 26, 0, 0, 0, 'MSK'); - make_timestamptz ------------------------------- - Sat Oct 25 20:00:00 2014 UTC + make_timestamptz +------------------------ + 2014-10-25 20:00:00+00 (1 row) SELECT make_timestamptz(2014, 10, 26, 1, 0, 0, 'MSK'); - make_timestamptz ------------------------------- - Sat Oct 25 22:00:00 2014 UTC + make_timestamptz +------------------------ + 2014-10-25 22:00:00+00 (1 row) SELECT to_timestamp( 0); -- 1970-01-01 00:00:00+00 - to_timestamp ------------------------------- - Thu Jan 01 00:00:00 1970 UTC + to_timestamp +------------------------ + 1970-01-01 00:00:00+00 (1 row) SELECT to_timestamp( 946684800); -- 2000-01-01 00:00:00+00 - to_timestamp ------------------------------- - Sat Jan 01 00:00:00 2000 UTC + to_timestamp +------------------------ + 2000-01-01 00:00:00+00 (1 row) SELECT to_timestamp(1262349296.7890123); -- 2010-01-01 12:34:56.789012+00 - to_timestamp -------------------------------------- - Fri Jan 01 12:34:56.789012 2010 UTC + to_timestamp +------------------------------- + 2010-01-01 12:34:56.789012+00 (1 row) -- edge cases SELECT to_timestamp(-210866803200); -- 4714-11-24 00:00:00+00 BC - to_timestamp ---------------------------------- - Mon Nov 24 00:00:00 4714 UTC BC + to_timestamp +--------------------------- + 4714-11-24 00:00:00+00 BC (1 row) -- upper limit varies between integer and float timestamps, so hard to test @@ -2694,220 +2691,220 @@ SELECT to_timestamp('NaN'::float); ERROR: timestamp cannot be NaN SET TimeZone to 'Europe/Moscow'; SELECT '2011-03-26 21:00:00 UTC'::timestamptz; - timestamptz ------------------------------- - Sun Mar 27 00:00:00 2011 MSK + timestamptz +------------------------ + 2011-03-27 00:00:00+03 (1 row) SELECT '2011-03-26 22:00:00 UTC'::timestamptz; - timestamptz ------------------------------- - Sun Mar 27 01:00:00 2011 MSK + timestamptz +------------------------ + 2011-03-27 01:00:00+03 (1 row) SELECT '2011-03-26 22:59:59 UTC'::timestamptz; - timestamptz ------------------------------- - Sun Mar 27 01:59:59 2011 MSK + timestamptz +------------------------ + 2011-03-27 01:59:59+03 (1 row) SELECT '2011-03-26 23:00:00 UTC'::timestamptz; - timestamptz ------------------------------- - Sun Mar 27 03:00:00 2011 MSK + timestamptz +------------------------ + 2011-03-27 03:00:00+04 (1 row) SELECT '2011-03-26 23:00:01 UTC'::timestamptz; - timestamptz ------------------------------- - Sun Mar 27 03:00:01 2011 MSK + timestamptz +------------------------ + 2011-03-27 03:00:01+04 (1 row) SELECT '2011-03-26 23:59:59 UTC'::timestamptz; - timestamptz ------------------------------- - Sun Mar 27 03:59:59 2011 MSK + timestamptz +------------------------ + 2011-03-27 03:59:59+04 (1 row) SELECT '2011-03-27 00:00:00 UTC'::timestamptz; - timestamptz ------------------------------- - Sun Mar 27 04:00:00 2011 MSK + timestamptz +------------------------ + 2011-03-27 04:00:00+04 (1 row) SELECT '2014-10-25 21:00:00 UTC'::timestamptz; - timestamptz ------------------------------- - Sun Oct 26 01:00:00 2014 MSK + timestamptz +------------------------ + 2014-10-26 01:00:00+04 (1 row) SELECT '2014-10-25 21:59:59 UTC'::timestamptz; - timestamptz ------------------------------- - Sun Oct 26 01:59:59 2014 MSK + timestamptz +------------------------ + 2014-10-26 01:59:59+04 (1 row) SELECT '2014-10-25 22:00:00 UTC'::timestamptz; - timestamptz ------------------------------- - Sun Oct 26 01:00:00 2014 MSK + timestamptz +------------------------ + 2014-10-26 01:00:00+03 (1 row) SELECT '2014-10-25 22:00:01 UTC'::timestamptz; - timestamptz ------------------------------- - Sun Oct 26 01:00:01 2014 MSK + timestamptz +------------------------ + 2014-10-26 01:00:01+03 (1 row) SELECT '2014-10-25 23:00:00 UTC'::timestamptz; - timestamptz ------------------------------- - Sun Oct 26 02:00:00 2014 MSK + timestamptz +------------------------ + 2014-10-26 02:00:00+03 (1 row) RESET TimeZone; SELECT '2011-03-26 21:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow'; - timezone --------------------------- - Sun Mar 27 00:00:00 2011 + timezone +--------------------- + 2011-03-27 00:00:00 (1 row) SELECT '2011-03-26 22:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow'; - timezone --------------------------- - Sun Mar 27 01:00:00 2011 + timezone +--------------------- + 2011-03-27 01:00:00 (1 row) SELECT '2011-03-26 22:59:59 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow'; - timezone --------------------------- - Sun Mar 27 01:59:59 2011 + timezone +--------------------- + 2011-03-27 01:59:59 (1 row) SELECT '2011-03-26 23:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow'; - timezone --------------------------- - Sun Mar 27 03:00:00 2011 + timezone +--------------------- + 2011-03-27 03:00:00 (1 row) SELECT '2011-03-26 23:00:01 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow'; - timezone --------------------------- - Sun Mar 27 03:00:01 2011 + timezone +--------------------- + 2011-03-27 03:00:01 (1 row) SELECT '2011-03-26 23:59:59 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow'; - timezone --------------------------- - Sun Mar 27 03:59:59 2011 + timezone +--------------------- + 2011-03-27 03:59:59 (1 row) SELECT '2011-03-27 00:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow'; - timezone --------------------------- - Sun Mar 27 04:00:00 2011 + timezone +--------------------- + 2011-03-27 04:00:00 (1 row) SELECT '2014-10-25 21:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow'; - timezone --------------------------- - Sun Oct 26 01:00:00 2014 + timezone +--------------------- + 2014-10-26 01:00:00 (1 row) SELECT '2014-10-25 21:59:59 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow'; - timezone --------------------------- - Sun Oct 26 01:59:59 2014 + timezone +--------------------- + 2014-10-26 01:59:59 (1 row) SELECT '2014-10-25 22:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow'; - timezone --------------------------- - Sun Oct 26 01:00:00 2014 + timezone +--------------------- + 2014-10-26 01:00:00 (1 row) SELECT '2014-10-25 22:00:01 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow'; - timezone --------------------------- - Sun Oct 26 01:00:01 2014 + timezone +--------------------- + 2014-10-26 01:00:01 (1 row) SELECT '2014-10-25 23:00:00 UTC'::timestamptz AT TIME ZONE 'Europe/Moscow'; - timezone --------------------------- - Sun Oct 26 02:00:00 2014 + timezone +--------------------- + 2014-10-26 02:00:00 (1 row) SELECT '2011-03-26 21:00:00 UTC'::timestamptz AT TIME ZONE 'MSK'; - timezone --------------------------- - Sun Mar 27 00:00:00 2011 + timezone +--------------------- + 2011-03-27 00:00:00 (1 row) SELECT '2011-03-26 22:00:00 UTC'::timestamptz AT TIME ZONE 'MSK'; - timezone --------------------------- - Sun Mar 27 01:00:00 2011 + timezone +--------------------- + 2011-03-27 01:00:00 (1 row) SELECT '2011-03-26 22:59:59 UTC'::timestamptz AT TIME ZONE 'MSK'; - timezone --------------------------- - Sun Mar 27 01:59:59 2011 + timezone +--------------------- + 2011-03-27 01:59:59 (1 row) SELECT '2011-03-26 23:00:00 UTC'::timestamptz AT TIME ZONE 'MSK'; - timezone --------------------------- - Sun Mar 27 03:00:00 2011 + timezone +--------------------- + 2011-03-27 03:00:00 (1 row) SELECT '2011-03-26 23:00:01 UTC'::timestamptz AT TIME ZONE 'MSK'; - timezone --------------------------- - Sun Mar 27 03:00:01 2011 + timezone +--------------------- + 2011-03-27 03:00:01 (1 row) SELECT '2011-03-26 23:59:59 UTC'::timestamptz AT TIME ZONE 'MSK'; - timezone --------------------------- - Sun Mar 27 03:59:59 2011 + timezone +--------------------- + 2011-03-27 03:59:59 (1 row) SELECT '2011-03-27 00:00:00 UTC'::timestamptz AT TIME ZONE 'MSK'; - timezone --------------------------- - Sun Mar 27 04:00:00 2011 + timezone +--------------------- + 2011-03-27 04:00:00 (1 row) SELECT '2014-10-25 21:00:00 UTC'::timestamptz AT TIME ZONE 'MSK'; - timezone --------------------------- - Sun Oct 26 01:00:00 2014 + timezone +--------------------- + 2014-10-26 01:00:00 (1 row) SELECT '2014-10-25 21:59:59 UTC'::timestamptz AT TIME ZONE 'MSK'; - timezone --------------------------- - Sun Oct 26 01:59:59 2014 + timezone +--------------------- + 2014-10-26 01:59:59 (1 row) SELECT '2014-10-25 22:00:00 UTC'::timestamptz AT TIME ZONE 'MSK'; - timezone --------------------------- - Sun Oct 26 01:00:00 2014 + timezone +--------------------- + 2014-10-26 01:00:00 (1 row) SELECT '2014-10-25 22:00:01 UTC'::timestamptz AT TIME ZONE 'MSK'; - timezone --------------------------- - Sun Oct 26 01:00:01 2014 + timezone +--------------------- + 2014-10-26 01:00:01 (1 row) SELECT '2014-10-25 23:00:00 UTC'::timestamptz AT TIME ZONE 'MSK'; - timezone --------------------------- - Sun Oct 26 02:00:00 2014 + timezone +--------------------- + 2014-10-26 02:00:00 (1 row) -- @@ -2917,15 +2914,17 @@ create temp table tmptz (f1 timestamptz primary key); insert into tmptz values ('2017-01-18 00:00+00'); explain (costs off) select * from tmptz where f1 at time zone 'utc' = '2017-01-18 00:00'; - QUERY PLAN ------------------------------------------------------------------------------------------------------ + QUERY PLAN +------------------------------------------------------------------------------------------------ Seq Scan on tmptz - Filter: ((f1 AT TIME ZONE 'utc'::text) = 'Wed Jan 18 00:00:00 2017'::timestamp without time zone) + Filter: ((f1 AT TIME ZONE 'utc'::text) = '2017-01-18 00:00:00'::timestamp without time zone) (2 rows) select * from tmptz where f1 at time zone 'utc' = '2017-01-18 00:00'; - f1 ------------------------------- - Tue Jan 17 16:00:00 2017 PST + f1 +------------------------ + 2017-01-17 16:00:00-08 (1 row) +reset intervalstyle; +reset datestyle; diff --git a/src/tests/regress/data/sql/timestamp.sql b/src/tests/regress/data/sql/timestamp.sql index 2841d2f2af462..7c8e1db4086b2 100644 --- a/src/tests/regress/data/sql/timestamp.sql +++ b/src/tests/regress/data/sql/timestamp.sql @@ -135,6 +135,9 @@ 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 5097 BC'); +set datestyle to iso; +set intervalstyle to postgres; + SELECT d1 FROM TIMESTAMP_TBL; -- Check behavior at the boundaries of the timestamp range @@ -364,3 +367,7 @@ SELECT make_timestamp(2014, 12, 28, 6, 30, 45.887); SELECT make_timestamp(-44, 3, 15, 12, 30, 15); -- should fail select make_timestamp(0, 7, 15, 12, 30, 15); + +DROP TABLE TIMESTAMP_TBL; +reset intervalstyle; +reset datestyle; diff --git a/src/tests/regress/data/sql/timestamptz.sql b/src/tests/regress/data/sql/timestamptz.sql index 17ced99efca32..ca2877024d58d 100644 --- a/src/tests/regress/data/sql/timestamptz.sql +++ b/src/tests/regress/data/sql/timestamptz.sql @@ -92,6 +92,9 @@ INSERT INTO TIMESTAMPTZ_TBL VALUES ('97/02/10 17:32:01 UTC'); reset datestyle; INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997.041 17:32:01 UTC'); +set datestyle to iso; +set intervalstyle to postgres; + -- timestamps at different timezones INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970210 173201 America/New_York'); SELECT '19970210 173201' AT TIME ZONE 'America/New_York'; @@ -354,6 +357,7 @@ SET timezone = '04:15'; SELECT to_char(now(), 'OF') as "OF", to_char(now(), 'TZH:TZM') as "TZH:TZM"; RESET timezone; +DROP TABLE TIMESTAMPTZ_TBL; CREATE TABLE TIMESTAMPTZ_TST (a int , b timestamptz); -- Test year field value with len > 4 @@ -545,3 +549,6 @@ insert into tmptz values ('2017-01-18 00:00+00'); explain (costs off) select * from tmptz where f1 at time zone 'utc' = '2017-01-18 00:00'; select * from tmptz where f1 at time zone 'utc' = '2017-01-18 00:00'; + +reset intervalstyle; +reset datestyle;