X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 8B11D564C0 for ; Thu, 3 Mar 2005 05:43:04 +0000 (GMT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 34920-02 for ; Thu, 3 Mar 2005 05:43:01 +0000 (GMT) Received: from mail1.elevating.com (wsip-68-99-77-237.tu.ok.cox.net [68.99.77.237]) by svr1.postgresql.org (Postfix) with ESMTP id 7F6B056491 for ; Thu, 3 Mar 2005 05:43:00 +0000 (GMT) Received: from bretsony.brets.elevating.com (bretsony.brets.elevating.com [10.23.0.139]) by mail1.elevating.com (8.11.6/8.11.6) with ESMTP id j235gbK18233 for ; Wed, 2 Mar 2005 23:42:40 -0600 Subject: Re: definative way to place secs from epoc into timestamp From: Bret Hughes To: postgresql sql list In-Reply-To: <13466.1109795186@sss.pgh.pa.us> References: <1109780719.28180.86.camel@bretsony> <13089.1109793126@sss.pgh.pa.us> <1109794066.27857.100.camel@bretsony> <13466.1109795186@sss.pgh.pa.us> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.8 (1.0.8-9.7x.1) Date: 02 Mar 2005 23:42:37 -0600 Message-Id: <1109828560.27905.137.camel@bretsony> Mime-Version: 1.0 X-Elevating-MailScanner: Found to be clean X-Elevating-MailScanner-SpamCheck: not spam, SpamAssassin (score=-1.423, required 5, BAYES_00 -1.50, TW_PG 0.08) X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.05 tagged_above=0 required=5 tests=AWL, FORGED_RCVD_HELO X-Spam-Level: X-Archive-Number: 200503/33 X-Sequence-Number: 20512 On Wed, 2005-03-02 at 14:26, Tom Lane wrote: > Bret Hughes writes: > > Thanks for the feed back tom I say that but I could not believe that I > > have to jump through all those hoops on an insert or update > > > update mytable set (lasttime =(SELECT TIMESTAMP WITH TIME ZONE 'epoch' + > > 982384720 * INTERVAL '1 second') ) > > > is this what you are saying I need to do? > > You can make a function that embodies whichever semantics you want. > > > also, what is happening with abstime(982384720)? this works as expected > > (by me ). Is this a bad idea? > > It won't be there forever. > Thanks again for the help Tom. My solution for those intrepid archive searchers that follow: also my first two pgsql functions :) cat ts2int.sql drop function int2ts(integer); drop function ts2int(timestamp without time zone); create function int2ts(integer) returns timestamp as ' SELECT ( TIMESTAMP WITH TIME ZONE \'epoch\' + $1 * INTERVAL \'1 second\')::timestamp without time zone; ' language sql; create function ts2int(timestamp without time zone) returns int as ' select extract( \'epoch\' from $1)::integer; ' language sql; comment on function int2ts(integer) is 'convert a unix timestamp based integer to a timestamp without time zone'; comment on function ts2int(timestamp without time zone) is 'convert a timstamp without time zone to a unix timstamp based integer'; Thanks again for your patience as I try to get my head around how pg handles this stuff. I am getting close to getting my head around it but seem to have a block on picturing the internals. Bret