0
(1 row)
-SELECT EXTRACT(EPOCH FROM TIMESTAMP '1970-01-01'); -- 0
- date_part
------------
- 0
-(1 row)
-
-SELECT EXTRACT(EPOCH FROM TIMESTAMPTZ '1970-01-01+00'); -- 0
- date_part
------------
- 0
-(1 row)
-
--
-- century
--
-2
(1 row)
---
--- some other types:
---
--- on a timestamp.
-SELECT EXTRACT(CENTURY FROM NOW())>=21 AS True; -- true
- true
-------
- t
-(1 row)
-
-SELECT EXTRACT(CENTURY FROM TIMESTAMP '1970-03-20 04:30:00.00000'); -- 20
- date_part
------------
- 20
-(1 row)
-
--
-- all possible fields
--
(1 row)
--
--- oscillating fields from non-finite date/timestamptz:
+-- oscillating fields from non-finite date:
--
SELECT EXTRACT(HOUR FROM DATE 'infinity'); -- NULL
date_part
(1 row)
-SELECT EXTRACT(HOUR FROM TIMESTAMP 'infinity'); -- NULL
- date_part
------------
-
-(1 row)
-
-SELECT EXTRACT(HOUR FROM TIMESTAMP '-infinity'); -- NULL
- date_part
------------
-
-(1 row)
-
-SELECT EXTRACT(HOUR FROM TIMESTAMPTZ 'infinity'); -- NULL
- date_part
------------
-
-(1 row)
-
-SELECT EXTRACT(HOUR FROM TIMESTAMPTZ '-infinity'); -- NULL
- date_part
------------
-
-(1 row)
-
-- all possible fields
SELECT EXTRACT(MICROSECONDS FROM DATE 'infinity'); -- NULL
date_part
(1 row)
--
--- monotonic fields from non-finite date/timestamptz:
+-- monotonic fields from non-finite date:
--
SELECT EXTRACT(EPOCH FROM DATE 'infinity'); -- Infinity
date_part
-Infinity
(1 row)
-SELECT EXTRACT(EPOCH FROM TIMESTAMP 'infinity'); -- Infinity
- date_part
------------
- Infinity
-(1 row)
-
-SELECT EXTRACT(EPOCH FROM TIMESTAMP '-infinity'); -- -Infinity
- date_part
------------
- -Infinity
-(1 row)
-
-SELECT EXTRACT(EPOCH FROM TIMESTAMPTZ 'infinity'); -- Infinity
- date_part
------------
- Infinity
-(1 row)
-
-SELECT EXTRACT(EPOCH FROM TIMESTAMPTZ '-infinity'); -- -Infinity
- date_part
------------
- -Infinity
-(1 row)
-
-- all possible fields
SELECT EXTRACT(YEAR FROM DATE 'infinity'); -- Infinity
date_part
date_part( 'decade', d1) AS decade,
date_part( 'century', d1) AS century,
date_part( 'millennium', d1) AS millennium,
- round(date_part( 'julian', d1)) AS julian
+ round(date_part( 'julian', d1)) AS julian,
+ date_part( 'epoch', d1) AS epoch
FROM TIMESTAMP_TBL;
- timestamp | decade | century | millennium | julian
------------------------------+-----------+-----------+------------+-----------
- -infinity | -Infinity | -Infinity | -Infinity | -Infinity
- infinity | Infinity | Infinity | Infinity | Infinity
- Thu Jan 01 00:00:00 1970 | 197 | 20 | 2 | 2440588
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:02 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01.4 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01.5 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01.6 1997 | 199 | 20 | 2 | 2450491
- Thu Jan 02 00:00:00 1997 | 199 | 20 | 2 | 2450451
- Thu Jan 02 03:04:05 1997 | 199 | 20 | 2 | 2450451
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Tue Jun 10 17:32:01 1997 | 199 | 20 | 2 | 2450611
- Sat Sep 22 18:19:20 2001 | 200 | 21 | 3 | 2452176
- Wed Mar 15 08:14:01 2000 | 200 | 20 | 2 | 2451619
- Wed Mar 15 13:14:02 2000 | 200 | 20 | 2 | 2451620
- Wed Mar 15 12:14:03 2000 | 200 | 20 | 2 | 2451620
- Wed Mar 15 03:14:04 2000 | 200 | 20 | 2 | 2451619
- Wed Mar 15 02:14:05 2000 | 200 | 20 | 2 | 2451619
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:00 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Tue Jun 10 18:32:01 1997 | 199 | 20 | 2 | 2450611
- Mon Feb 10 17:32:01 1997 | 199 | 20 | 2 | 2450491
- Tue Feb 11 17:32:01 1997 | 199 | 20 | 2 | 2450492
- Wed Feb 12 17:32:01 1997 | 199 | 20 | 2 | 2450493
- Thu Feb 13 17:32:01 1997 | 199 | 20 | 2 | 2450494
- Fri Feb 14 17:32:01 1997 | 199 | 20 | 2 | 2450495
- Sat Feb 15 17:32:01 1997 | 199 | 20 | 2 | 2450496
- Sun Feb 16 17:32:01 1997 | 199 | 20 | 2 | 2450497
- Tue Feb 16 17:32:01 0097 BC | -10 | -1 | -1 | 1686043
- Sat Feb 16 17:32:01 0097 | 9 | 1 | 1 | 1756537
- Thu Feb 16 17:32:01 0597 | 59 | 6 | 1 | 1939158
- Tue Feb 16 17:32:01 1097 | 109 | 11 | 2 | 2121779
- Sat Feb 16 17:32:01 1697 | 169 | 17 | 2 | 2340925
- Thu Feb 16 17:32:01 1797 | 179 | 18 | 2 | 2377449
- Tue Feb 16 17:32:01 1897 | 189 | 19 | 2 | 2413973
- Sun Feb 16 17:32:01 1997 | 199 | 20 | 2 | 2450497
- Sat Feb 16 17:32:01 2097 | 209 | 21 | 3 | 2487022
- Wed Feb 28 17:32:01 1996 | 199 | 20 | 2 | 2450143
- Thu Feb 29 17:32:01 1996 | 199 | 20 | 2 | 2450144
- Fri Mar 01 17:32:01 1996 | 199 | 20 | 2 | 2450145
- Mon Dec 30 17:32:01 1996 | 199 | 20 | 2 | 2450449
- Tue Dec 31 17:32:01 1996 | 199 | 20 | 2 | 2450450
- Wed Jan 01 17:32:01 1997 | 199 | 20 | 2 | 2450451
- Fri Feb 28 17:32:01 1997 | 199 | 20 | 2 | 2450509
- Sat Mar 01 17:32:01 1997 | 199 | 20 | 2 | 2450510
- Tue Dec 30 17:32:01 1997 | 199 | 20 | 2 | 2450814
- Wed Dec 31 17:32:01 1997 | 199 | 20 | 2 | 2450815
- Fri Dec 31 17:32:01 1999 | 199 | 20 | 2 | 2451545
- Sat Jan 01 17:32:01 2000 | 200 | 20 | 2 | 2451546
- Sun Dec 31 17:32:01 2000 | 200 | 20 | 2 | 2451911
- Mon Jan 01 17:32:01 2001 | 200 | 21 | 3 | 2451912
+ 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
(65 rows)
-- TO_CHAR()
date_part( 'decade', d1) AS decade,
date_part( 'century', d1) AS century,
date_part( 'millennium', d1) AS millennium,
- round(date_part( 'julian', d1)) AS julian
+ round(date_part( 'julian', d1)) AS julian,
+ date_part( 'epoch', d1) AS epoch
FROM TIMESTAMPTZ_TBL;
- timestamptz | decade | century | millennium | julian
----------------------------------+-----------+-----------+------------+-----------
- -infinity | -Infinity | -Infinity | -Infinity | -Infinity
- infinity | Infinity | Infinity | Infinity | Infinity
- Wed Dec 31 16:00:00 1969 PST | 196 | 20 | 2 | 2440588
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:02 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01.4 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01.5 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01.6 1997 PST | 199 | 20 | 2 | 2450491
- Thu Jan 02 00:00:00 1997 PST | 199 | 20 | 2 | 2450451
- Thu Jan 02 03:04:05 1997 PST | 199 | 20 | 2 | 2450451
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Tue Jun 10 17:32:01 1997 PDT | 199 | 20 | 2 | 2450611
- Sat Sep 22 18:19:20 2001 PDT | 200 | 21 | 3 | 2452176
- Wed Mar 15 08:14:01 2000 PST | 200 | 20 | 2 | 2451619
- Wed Mar 15 04:14:02 2000 PST | 200 | 20 | 2 | 2451619
- Wed Mar 15 02:14:03 2000 PST | 200 | 20 | 2 | 2451619
- Wed Mar 15 03:14:04 2000 PST | 200 | 20 | 2 | 2451619
- Wed Mar 15 01:14:05 2000 PST | 200 | 20 | 2 | 2451619
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:00 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Mon Feb 10 09:32:01 1997 PST | 199 | 20 | 2 | 2450490
- Mon Feb 10 09:32:01 1997 PST | 199 | 20 | 2 | 2450490
- Mon Feb 10 09:32:01 1997 PST | 199 | 20 | 2 | 2450490
- Mon Feb 10 14:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Thu Jul 10 14:32:01 1997 PDT | 199 | 20 | 2 | 2450641
- Tue Jun 10 18:32:01 1997 PDT | 199 | 20 | 2 | 2450611
- Mon Feb 10 17:32:01 1997 PST | 199 | 20 | 2 | 2450491
- Tue Feb 11 17:32:01 1997 PST | 199 | 20 | 2 | 2450492
- Wed Feb 12 17:32:01 1997 PST | 199 | 20 | 2 | 2450493
- Thu Feb 13 17:32:01 1997 PST | 199 | 20 | 2 | 2450494
- Fri Feb 14 17:32:01 1997 PST | 199 | 20 | 2 | 2450495
- Sat Feb 15 17:32:01 1997 PST | 199 | 20 | 2 | 2450496
- Sun Feb 16 17:32:01 1997 PST | 199 | 20 | 2 | 2450497
- Tue Feb 16 17:32:01 0097 PST BC | -10 | -1 | -1 | 1686043
- Sat Feb 16 17:32:01 0097 PST | 9 | 1 | 1 | 1756537
- Thu Feb 16 17:32:01 0597 PST | 59 | 6 | 1 | 1939158
- Tue Feb 16 17:32:01 1097 PST | 109 | 11 | 2 | 2121779
- Sat Feb 16 17:32:01 1697 PST | 169 | 17 | 2 | 2340925
- Thu Feb 16 17:32:01 1797 PST | 179 | 18 | 2 | 2377449
- Tue Feb 16 17:32:01 1897 PST | 189 | 19 | 2 | 2413973
- Sun Feb 16 17:32:01 1997 PST | 199 | 20 | 2 | 2450497
- Sat Feb 16 17:32:01 2097 PST | 209 | 21 | 3 | 2487022
- Wed Feb 28 17:32:01 1996 PST | 199 | 20 | 2 | 2450143
- Thu Feb 29 17:32:01 1996 PST | 199 | 20 | 2 | 2450144
- Fri Mar 01 17:32:01 1996 PST | 199 | 20 | 2 | 2450145
- Mon Dec 30 17:32:01 1996 PST | 199 | 20 | 2 | 2450449
- Tue Dec 31 17:32:01 1996 PST | 199 | 20 | 2 | 2450450
- Wed Jan 01 17:32:01 1997 PST | 199 | 20 | 2 | 2450451
- Fri Feb 28 17:32:01 1997 PST | 199 | 20 | 2 | 2450509
- Sat Mar 01 17:32:01 1997 PST | 199 | 20 | 2 | 2450510
- Tue Dec 30 17:32:01 1997 PST | 199 | 20 | 2 | 2450814
- Wed Dec 31 17:32:01 1997 PST | 199 | 20 | 2 | 2450815
- Fri Dec 31 17:32:01 1999 PST | 199 | 20 | 2 | 2451545
- Sat Jan 01 17:32:01 2000 PST | 200 | 20 | 2 | 2451546
- Sun Dec 31 17:32:01 2000 PST | 200 | 20 | 2 | 2451911
- Mon Jan 01 17:32:01 2001 PST | 200 | 21 | 3 | 2451912
+ 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
(66 rows)
SELECT d1 as timestamptz,
-- epoch
--
SELECT EXTRACT(EPOCH FROM DATE '1970-01-01'); -- 0
-SELECT EXTRACT(EPOCH FROM TIMESTAMP '1970-01-01'); -- 0
-SELECT EXTRACT(EPOCH FROM TIMESTAMPTZ '1970-01-01+00'); -- 0
--
-- century
--
SELECT EXTRACT(DECADE FROM DATE '0011-01-01 BC'); -- -1
SELECT EXTRACT(DECADE FROM DATE '0012-12-31 BC'); -- -2
--
--- some other types:
---
--- on a timestamp.
-SELECT EXTRACT(CENTURY FROM NOW())>=21 AS True; -- true
-SELECT EXTRACT(CENTURY FROM TIMESTAMP '1970-03-20 04:30:00.00000'); -- 20
---
-- all possible fields
--
SELECT EXTRACT(MICROSECONDS FROM DATE '2020-08-11');
select '-infinity'::date < 'today'::date as t;
select isfinite('infinity'::date), isfinite('-infinity'::date), isfinite('today'::date);
--
--- oscillating fields from non-finite date/timestamptz:
+-- oscillating fields from non-finite date:
--
SELECT EXTRACT(HOUR FROM DATE 'infinity'); -- NULL
SELECT EXTRACT(HOUR FROM DATE '-infinity'); -- NULL
-SELECT EXTRACT(HOUR FROM TIMESTAMP 'infinity'); -- NULL
-SELECT EXTRACT(HOUR FROM TIMESTAMP '-infinity'); -- NULL
-SELECT EXTRACT(HOUR FROM TIMESTAMPTZ 'infinity'); -- NULL
-SELECT EXTRACT(HOUR FROM TIMESTAMPTZ '-infinity'); -- NULL
-- all possible fields
SELECT EXTRACT(MICROSECONDS FROM DATE 'infinity'); -- NULL
SELECT EXTRACT(MILLISECONDS FROM DATE 'infinity'); -- NULL
SELECT EXTRACT(TIMEZONE_M FROM DATE 'infinity'); -- NULL
SELECT EXTRACT(TIMEZONE_H FROM DATE 'infinity'); -- NULL
--
--- monotonic fields from non-finite date/timestamptz:
+-- monotonic fields from non-finite date:
--
SELECT EXTRACT(EPOCH FROM DATE 'infinity'); -- Infinity
SELECT EXTRACT(EPOCH FROM DATE '-infinity'); -- -Infinity
-SELECT EXTRACT(EPOCH FROM TIMESTAMP 'infinity'); -- Infinity
-SELECT EXTRACT(EPOCH FROM TIMESTAMP '-infinity'); -- -Infinity
-SELECT EXTRACT(EPOCH FROM TIMESTAMPTZ 'infinity'); -- Infinity
-SELECT EXTRACT(EPOCH FROM TIMESTAMPTZ '-infinity'); -- -Infinity
-- all possible fields
SELECT EXTRACT(YEAR FROM DATE 'infinity'); -- Infinity
SELECT EXTRACT(DECADE FROM DATE 'infinity'); -- Infinity
date_part( 'decade', d1) AS decade,
date_part( 'century', d1) AS century,
date_part( 'millennium', d1) AS millennium,
- round(date_part( 'julian', d1)) AS julian
+ round(date_part( 'julian', d1)) AS julian,
+ date_part( 'epoch', d1) AS epoch
FROM TIMESTAMP_TBL;
-- TO_CHAR()
date_part( 'decade', d1) AS decade,
date_part( 'century', d1) AS century,
date_part( 'millennium', d1) AS millennium,
- round(date_part( 'julian', d1)) AS julian
+ round(date_part( 'julian', d1)) AS julian,
+ date_part( 'epoch', d1) AS epoch
FROM TIMESTAMPTZ_TBL;
SELECT d1 as timestamptz,