On 2005-02-21, Achilleus Mantzios <[EMAIL PROTECTED]> wrote: > Consider a schema designed to store internet mail. > > Since pgsql always converts a timestamptz to UTC, we have lost > the information of the Sender's local timezone. > > Should i go with a separete date and timetz ?
No. Consider instead storing a timestamptz with the actual time of the mail, and a separate field with an interval representing the zone offset. Then you can use AT TIME ZONE to recover the sender's local time. e.g. (this table has columns serial, timestamptz, interval) insert into dtz values (DEFAULT, '2005-03-21 07:05:00 -0800', '2005-03-21 07:05:00 -0800'::timestamp - '2005-03-21 07:05:00 -0800'::timestamptz at time zone 'UTC' ); (the timestamp - timestamptz thing is just a reasonably reliable way of getting the timezone offset without complicated parsing.) select * from dtz; id | t | z ----+------------------------+----------- 1 | 2005-03-21 15:05:00+00 | -08:00:00 (1 row) select *, t at time zone z as ot from dtz; id | t | z | ot ----+------------------------+-----------+--------------------- 1 | 2005-03-21 15:05:00+00 | -08:00:00 | 2005-03-21 07:05:00 (1 row) -- Andrew, Supernews http://www.supernews.com - individual and corporate NNTP services ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match