Bill Moran <wmoran@xxxxxxxxxxxxxxxxxxxxxxx> writes: > Not quite. As shown in the examples, date_trunc() works fine on > TIME WITHOUT TIME ZONE, but there's no such function for TIME WITH > TIME ZONE. Well, actually there's no date_trunc for time either: regression=# \df date_trunc List of functions Schema | Name | Result data type | Argument data types ------------+------------+-----------------------------+----------------------------------- pg_catalog | date_trunc | interval | text, interval pg_catalog | date_trunc | timestamp with time zone | text, timestamp with time zone pg_catalog | date_trunc | timestamp without time zone | text, timestamp without time zone (3 rows) However, the interval version of the function can capture the time case because there's an implicit cast from time to interval: regression=# select casttarget::regtype,castcontext,castfunc::regprocedure from pg_cast where castsource = 'time'::regtype; casttarget | castcontext | castfunc ------------------------+-------------+---------------------------------------- interval | i | "interval"(time without time zone) time with time zone | i | timetz(time without time zone) time without time zone | i | "time"(time without time zone,integer) (3 rows) There's no implicit cast from timetz to interval, which I suppose is because it would be an information-losing transform. regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general