-- -- TIMETZ -- CREATE TABLE TIMETZ_TBL (f1 time(2) with time zone); -- this should fail (timezone not specified without a date) INSERT INTO TIMETZ_TBL VALUES ('15:36:39 m2'); ERROR: invalid input syntax for type time with time zone: "15:36:39 m2" LINE 1: INSERT INTO TIMETZ_TBL VALUES ('15:36:39 m2'); ^ -- this should fail (dynamic timezone abbreviation without a date) INSERT INTO TIMETZ_TBL VALUES ('15:36:39 MSK m2'); ERROR: invalid input syntax for type time with time zone: "15:36:39 MSK m2" LINE 1: INSERT INTO TIMETZ_TBL VALUES ('15:36:39 MSK m2'); ^ SELECT f1 AS "None" FROM TIMETZ_TBL WHERE f1 < '00:00-07'; None ------ (0 rows) -- -- test EXTRACT -- SELECT EXTRACT(MICROSECOND FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); extract ---------- 25575401 (1 row) SELECT EXTRACT(MILLISECOND FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); extract ----------- 25575.401 (1 row) SELECT EXTRACT(SECOND FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); extract ----------- 25.575401 (1 row) SELECT EXTRACT(MINUTE FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); extract --------- 30 (1 row) SELECT EXTRACT(HOUR FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); extract --------- 13 (1 row) SELECT EXTRACT(DAY FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); -- error ERROR: "time with time zone" units "day" not recognized SELECT EXTRACT(FORTNIGHT FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); -- error ERROR: "time with time zone" units "fortnight" not recognized SELECT EXTRACT(TIMEZONE FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04:30'); extract --------- -16200 (1 row) SELECT EXTRACT(TIMEZONE_HOUR FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04:30'); extract --------- -4 (1 row) SELECT EXTRACT(TIMEZONE_MINUTE FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04:30'); extract --------- -30 (1 row) SELECT EXTRACT(EPOCH FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); extract -------------- 63025.575401 (1 row) -- date_part implementation is mostly the same as extract, so only -- test a few cases for additional coverage. SELECT date_part('microsecond', TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); date_part ----------- 25575401 (1 row) SELECT date_part('millisecond', TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); date_part ----------- 25575.401 (1 row) SELECT date_part('second', TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); date_part ----------- 25.575401 (1 row) SELECT date_part('epoch', TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); date_part -------------- 63025.575401 (1 row)