Re: update time zone in timestamps

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: CSN <cool_screen_name90001(at)yahoo(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: update time zone in timestamps
Date: 2003-12-05 14:43:05
Message-ID: 20842.1070635385@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

CSN <cool_screen_name90001(at)yahoo(dot)com> writes:
> Is it possible to update the timezone part of
> timestamp fields in a single query? I have a bunch of
> values that are -06 I need changed to -07.

I suspect that you have a fundamental conceptual error.

You cannot "update the timezone" because the timezone is not part of the
stored value; it is part of the display operation. Stored values for
timestamptz columns are always effectively in UTC. When the value is
converted to a string for display, it is adjusted to your current local
timezone (per SET TIME ZONE) and that timezone is what's put on the
output.

So the basic answer is you don't change the data, you change your
TIME ZONE setting from -6 to -7 if that's what you want to see.

You might have an additional problem that the data was entered
incorrectly, and is one hour off from reality because you were
confused about time zones when you put it in. In that case you'd
fix it with something like
UPDATE tab SET col = col + '1 hour'::interval;

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ryan Mahoney 2003-12-05 15:34:08 max_fsm_pages
Previous Message Roderick A. Anderson 2003-12-05 13:43:49 Re: Groups vs. Roles