Re: date_trun() with timezones? (was Re: TIME column manipulation/comparison hangups)
| От | Tom Lane |
|---|---|
| Тема | Re: date_trun() with timezones? (was Re: TIME column manipulation/comparison hangups) |
| Дата | |
| Msg-id | 16063.1225741564@sss.pgh.pa.us обсуждение |
| Ответ на | date_trun() with timezones? (was Re: TIME column manipulation/comparison hangups) (Bill Moran <wmoran@collaborativefusion.com>) |
| Ответы |
pg_casts view (was Re: date_trun() with timezones? (was Re:
TIME column ...))
|
| Список | pgsql-general |
Bill Moran <wmoran@collaborativefusion.com> 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
В списке pgsql-general по дате отправления: