Re: funkiness with '1999-12-31 19:00:00-05'::timestamp with time zone

From: Josh Kupershmidt <schmiddy(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Re: funkiness with '1999-12-31 19:00:00-05'::timestamp with time zone
Date: 2010-09-03 19:35:36
Message-ID: AANLkTinMcT3zGE=Ndbm4jkWvD9MCtPBfnkFNidTsJsE5@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Fri, Sep 3, 2010 at 3:24 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> regression=# select extract(epoch from ts - '1999-12-31 19:00:00-05'::timestamptz) from t1;
>      date_part
> ----------------------
>  1.00000761449337e-07
>                    0
> (2 rows)
>
> This timestamp (2000-01-01 00:00 GMT) is actually the zero value
> internally for Postgres timestamps, so in principle a float timestamp
> has precision far smaller than microseconds for values near this.
> We don't make any great effort to expose that though.  It looks like
> the closest value that timestamptzin makes different from zero is
>
> regression=# select extract(epoch from '1999-12-31 19:00:00.00000000001-05' - '1999-12-31 19:00:00-05'::timestamptz) ;
>      date_part
> ----------------------
>  1.45519152283669e-11
> (1 row)

EXTRACT(epoch ...) was what I was looking for:

SELECT EXTRACT(epoch FROM ts - '1999-12-31 19:00:00-05'::timestamptz)
FROM timestamps_test LIMIT 5;
date_part
-----------------------
1.4120666068199e-309
1.4154982781624e-309
1.41550281692099e-309
1.41591466059161e-309
1.41591524669472e-309
(5 rows)

Thanks for the help, Tom.

Josh

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2010-09-03 19:36:43 Re: funkiness with '1999-12-31 19:00:00-05'::timestamp with time zone
Previous Message Merlin Moncure 2010-09-03 19:32:43 Re: How can I use parameters in plain sql