Bill Moran <[EMAIL PROTECTED]> 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 ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general