Re: [GENERAL] Thoroughly confused about time zones

2011-02-28 Thread Scott Ribe
On Feb 28, 2011, at 8:06 AM, Rob Richardson wrote:

 But if PostgreSQL doesn’t store time zones internally, then that difference 
 is going to be 24 hours, which doesn’t help me.

No, postgres stores timestamptz as UTC, so that calculation will work exactly 
like you want.

-- 
Scott Ribe
scott_r...@elevated-dev.com
http://www.elevated-dev.com/
(303) 722-0567 voice





-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] Thoroughly confused about time zones

2011-02-28 Thread Rob Richardson
I think maybe I'm making things much more difficult than they need to
be.  I tried this:

 

select cast (extract(epoch from ('2010-3-14 12:00'::timestamp -
'2010-3-13 12:00'::timestamp)) as integer) / 60 / 60

 

and got 24.  The difference between timestamps without time zones is 24
hours, even though the interval spanned a time change.

 

But when I tried this:

 

select cast (extract(epoch from ('2010-3-14 12:00'::timestamptz -
'2010-3-13 12:00'::timestamptz)) as integer) / 60 / 60

 

I got 23, showing that even if I did not specify what time zone I'm
talking about, I got the correct answer.

 

 

RobR



Re: [GENERAL] Thoroughly confused about time zones

2011-02-28 Thread Scott Ribe
On Feb 28, 2011, at 8:18 AM, Rob Richardson wrote:

 But when I tried this:
  
 select cast (extract(epoch from ('2010-3-14 12:00'::timestamptz - '2010-3-13 
 12:00'::timestamptz)) as integer) / 60 / 60
  
 I got 23, showing that even if I did not specify what time zone I’m talking 
 about, I got the correct answer.

You didn't specify the time zone, so it used your local time zone info--but not 
just your current offset from UTC, rather the offsets from UTC at the 
dates/times specified.

-- 
Scott Ribe
scott_r...@elevated-dev.com
http://www.elevated-dev.com/
(303) 722-0567 voice





-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] Thoroughly confused about time zones

2011-02-28 Thread Martijn van Oosterhout
On Mon, Feb 28, 2011 at 10:06:28AM -0500, Rob Richardson wrote:
 Our application stores the times at which several events happened, and
 we need to be able to calculate the elapsed time between events.
 Currently, the times are stored as timestamps without time zone, in both
 local and UTC times.  Elapsed time calculations are based on the UTC
 times.  Supposedly, that should avoid problems posed by the change from
 standard to daylight savings time, but it is not working out that easily
 in practice.

A useful way I find of thinking about it is: you have two things you
want to be able to store.

- An instant in time, an event for example. The representation of this
  instant is dependant on where you are. This is the timestamp with
  time zone.

- The wall clock time, what it say on the wall. So, no time zone, it
  just represents what a clock said at some point. This is the
  timestamp without time zone.

The latter is usually not that useful, except for output. What you
usually want is the timestamptz.

Hop this helps,
-- 
Martijn van Oosterhout   klep...@svana.org   http://svana.org/kleptog/
 Patriotism is when love of your own people comes first; nationalism,
 when hate for people other than your own comes first. 
   - Charles de Gaulle


signature.asc
Description: Digital signature