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 (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to