Обсуждение: Calculation Error on Epoch?

Поиск
Список
Период
Сортировка

Calculation Error on Epoch?

От
"Josh Berkus"
Дата:
Folks,

I'm having a problem with:

SELECT date_part('epoch','2002-08-28'::TIMESTAMP)

Which is consistently returning an epoch timestamp that evaluates to
8.27.2002.   Is this a known issue?   A cross-platform problem?Suggestions?

-Josh Berkus


Re: Calculation Error on Epoch?

От
"Christopher Kings-Lynne"
Дата:
What if you try this:

SELECT date_part('epoch','2002-08-28'::TIMESTAMP WITH TIME ZONE)

It's probably 8 hours time different to GMT or somethign like that...

Chris

> -----Original Message-----
> From: pgsql-sql-owner@postgresql.org
> [mailto:pgsql-sql-owner@postgresql.org]On Behalf Of Josh Berkus
> Sent: Wednesday, 28 August 2002 11:31 AM
> To: pgsql-sql@postgresql.org
> Subject: [SQL] Calculation Error on Epoch?
> 
> 
> Folks,
> 
> I'm having a problem with:
> 
> SELECT date_part('epoch','2002-08-28'::TIMESTAMP)
> 
> Which is consistently returning an epoch timestamp that evaluates to
> 8.27.2002.   Is this a known issue?   A cross-platform problem?
>  Suggestions?
> 
> -Josh Berkus
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
> 



Re: Calculation Error on Epoch?

От
Tom Lane
Дата:
"Josh Berkus" <josh@agliodbs.com> writes:
> I'm having a problem with:
> SELECT date_part('epoch','2002-08-28'::TIMESTAMP)
> Which is consistently returning an epoch timestamp that evaluates to
> 8.27.2002.   Is this a known issue?   A cross-platform problem?

In 7.2 I get:

regression=# SELECT date_part('epoch','2002-08-28'::TIMESTAMP);date_part
------------1030507200
(1 row)

which seems to be correct given my timezone:

$ prdate 1030507200
time 1030507200 = Wed Aug 28 2002, 00:00:00 EDT

(prdate is a homegrown utility that just does strftime(localtime(...)))

It does seem to be broken in CVS tip, as I've complained to Thomas
at least once:

regression=# SELECT date_part('epoch','2002-08-28'::TIMESTAMP);date_part
-----------1030.4928                -- wrong
(1 row)

regression=# SELECT date_part('epoch','2002-08-28'::TIMESTAMPTZ);date_part
------------1030507200                -- right
(1 row)


What context are you testing in, and what do you get exactly?
        regards, tom lane