Re: How to store the time zone with a timestamp

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: "Jim C(dot) Nasby" <jnasby(at)pervasive(dot)com>
Cc: "Andrew B(dot) Young" <andrew_b_young(at)earthlink(dot)net>, pgsql-general(at)postgresql(dot)org
Subject: Re: How to store the time zone with a timestamp
Date: 2005-12-17 16:01:22
Message-ID: 200512171601.jBHG1MN15425@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


We have a TODO also:

o Allow TIMESTAMP WITH TIME ZONE to store the original timezone
information, either zone name or offset from UTC [timezone]

If the TIMESTAMP value is stored with a time zone name, interval
computations should adjust based on the time zone rules.

---------------------------------------------------------------------------

Jim C. Nasby wrote:
> BTW, if you wanted a more integrated solution, you could build a custom
> type that would store the timestamp info. There's a good chance such
> code would end up being what's used in the server as the official type,
> too.
>
> On Fri, Dec 16, 2005 at 08:57:04AM -0800, Andrew B. Young wrote:
> > I just realized that the type "timestamp with time zone" does NOT store
> > the time zone!
> > (And I just found this support list to look for help.)
> >
> > I am developing an application that stores power (watts) readings from
> > meters
> > located around the world (abridged)--
> > power_meter_id integer NOT NULL,
> > "ts" timestamp with time zone NOT NULL,
> > power_reading real NOT NULL
> >
> > Not storing the originating TZ is unacceptable. My search of this list
> > finds a number of
> > helpful discussions (including a reference to a TODO; soon I hope!) I
> > don't know
> > database programming and wonder if experienced users could reply with
> > some code
> > they've implemented.
> >
> > I think the best solution is along Karsten's, which I believe goes like
> > this--
> > 1) "ts" timestamp with time zone NOT NULL,
> > "tz" char( 6 ) NOT NULL, # '-12:00' to '+13:00'
> > 2) A insert trigger that populates "tz"
> > 3) Some function foo() that
> > a) calls timezone( tz, ts ) and
> > b) tacks on tz to the resulting string
> > in a "SELECT power_meter_id, foo( ts, tz ), power_reading;"
> >
> > ANY snip its of code that implements anything related would be appreciated.
> > I can probably gin the complete solution seeing enough examples.
> >
> > Thanks!
> > Andrew
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 1: if posting/reading through Usenet, please send an appropriate
> > subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
> > message can get through to the mailing list cleanly
> >
>
> --
> Jim C. Nasby, Sr. Engineering Consultant jnasby(at)pervasive(dot)com
> Pervasive Software http://pervasive.com work: 512-231-6117
> vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Andre Truter 2005-12-17 16:03:21 Re: DBlink documentation
Previous Message Bruce Momjian 2005-12-17 15:11:27 Re: Installation trouble - Solved