Received: from localhost (wm.hub.org [200.46.204.128]) by postgresql.org (Postfix) with ESMTP id D7DB69FB326 for ; Tue, 17 Oct 2006 10:34:27 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.128]) (amavisd-new, port 10024) with ESMTP id 04572-07 for ; Tue, 17 Oct 2006 13:34:04 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey- Received: from sss.pgh.pa.us (sss.pgh.pa.us [66.207.139.130]) by postgresql.org (Postfix) with ESMTP id C547E9FB21B for ; Tue, 17 Oct 2006 10:34:03 -0300 (ADT) Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1]) by sss.pgh.pa.us (8.13.6/8.13.6) with ESMTP id k9HDY2nj016547; Tue, 17 Oct 2006 09:34:02 -0400 (EDT) To: chrisj cc: pgsql-sql@postgresql.org Subject: Re: Assigning a timestamp without timezone to a timestamp In-reply-to: <6847852.post@talk.nabble.com> References: <6613652.post@talk.nabble.com> <20061003135623.GB3191@phlogiston.dyndns.org> <6621346.post@talk.nabble.com> <20061003145134.GA3399@phlogiston.dyndns.org> <8C5B026B51B6854CBE88121DBF097A864DE848@ehost010-33.exch010.intermedia.net> <20061005183128.GD8826@phlogiston.dyndns.org> <6667446.post@talk.nabble.com> <20061005203121.GI8826@phlogiston.dyndns.org> <6815181.post@talk.nabble.com> <13338.1160868392@sss.pgh.pa.us> <6827636.post@talk.nabble.com> <7622.1160969464@sss.pgh.pa.us> <6847852.post@talk.nabble.com> Comments: In-reply-to chrisj message dated "Mon, 16 Oct 2006 20:27:42 -0700" Date: Tue, 17 Oct 2006 09:34:02 -0400 Message-ID: <16546.1161092042@sss.pgh.pa.us> From: Tom Lane X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200610/169 X-Sequence-Number: 26558 chrisj writes: > When I first saw your solution I thought it was logically going to do > (notice the parentheses): > select ('2006-07-13 09:20:00'::timestamp) at time zone 'EST5EDT'; > which does not help Well, actually, that's exactly what it does. AT TIME ZONE is an operator that converts timestamp without time zone to timestamp with time zone (or vice versa). I guess you could easily get confused here, but AT is not WITH. > , cast(start_datetime as timestamp(0) without time zone)::timestamp at > time zone B.timezone_ch That's redundant --- you're casting the result of the cast to timestamp (implicitly without time zone), then applying the AT TIME ZONE operator. regards, tom lane