Re: timestamp arithmetic (a possible bug?)

From: Theodore Petrosky <tedpet5(at)yahoo(dot)com>
To: Ilir Gashi <I(dot)Gashi(at)city(dot)ac(dot)uk>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: timestamp arithmetic (a possible bug?)
Date: 2004-07-02 11:23:02
Message-ID: 20040702112302.54615.qmail@web41012.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Interesting....

If I reverse the order it works...

agencysacks=# SELECT CAST('01.01.2004 10:00:00' AS
TIMESTAMP) + (CAST('01.01.2004 10:01:00' AS TIMESTAMP)
- CAST('01.01.2004 10:00:00' AS TIMESTAMP)) as answer;
answer
---------------------
2004-01-01 10:01:00
(1 row)

However your original...

agencysacks=# SELECT (CAST('01.01.2004 10:01:00' AS
TIMESTAMP) - CAST('01.01.2004 10:00:00' AS TIMESTAMP))
+ CAST('01.01.2004 10:00:00' AS TIMESTAMP);
ERROR: operator does not exist: interval + timestamp
without time zone
HINT: No operator matches the given name and argument
type(s). You may need to add explicit type casts.

agencysacks=# select version();

version

-------------------------------------------------------------------------------------------------------------------------
PostgreSQL 7.4.2 on powerpc-apple-darwin7.2.0,
compiled by GCC gcc (GCC) 3.3 20030304 (Apple
Computer, Inc. build 1495)
(1 row)

Looks like postgresql demands the order to be
timestamp +- interval.

Ted

--- Ilir Gashi <I(dot)Gashi(at)city(dot)ac(dot)uk> wrote:
> Hi,
>
> I saw this behaviour in PostgreSQL 7.2. (Once again,
> I know this is an old
> release but I do not have a newer version installed,
> and I am only using
> the server for research purposes). If you execute
> the following statement
>
> SELECT (CAST('01.01.2004 10:01:00' AS TIMESTAMP) -
> CAST('01.01.2004
> 10:00:00' AS TIMESTAMP)) + CAST('01.01.2004
> 10:00:00' AS TIMESTAMP);
>
> The result returned is:
>
> ?column?
> ---------------------
> 2004-01-01 00:01:00
> (1 row)
>
> I was expecting: 2004-01-01 10:01:00.
>
> Tried it on Oracle 8.0.5:
>
> SELECT TO_DATE('01.01.2004 10:01:00', 'DD.MM.YYYY
> HH:MI:SS') -
> TO_DATE('01.01.2004 10:00:00', 'DD.MM.YYYY
> HH:MI:SS') + TO_DATE('01.01.2004
> 10:00:00', 'DD.MM.YYYY HH:MI:SS') FROM DUAL;
>
> ---------------------------
> 2004-01-01 10:01:00
> (1 row selected)
>
>
> And MSSQL 7:
>
> SELECT (CAST('01.01.2004 10:01:00' AS DATETIME) -
> CAST('01.01.2004
> 10:00:00' AS DATETIME) + CAST('01.01.2004 10:00:00'
> AS DATETIME));
>
>
> ---------------------------
>
> 2004-01-01 10:01:00.000
>
> (1 row(s) affected)
>
>
> Is this a bug? Same thing happens if I use
> TimestampTZ rather than
> Timestamp.
>
> Best regards,
>
> Ilir
>
> ____________________________________________
>
> Ilir Gashi
> PhD Student
> Centre for Software Reliability
> City University
> Northampton Square, London EC1V 0HB
> email: i(dot)gashi(at)city(dot)ac(dot)uk
> website:
> http://www.csr.city.ac.uk/csr_city/staff/gashi/
> ____________________________________________
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to
> majordomo(at)postgresql(dot)org
>


__________________________________
Do you Yahoo!?
Yahoo! Mail - 50x more storage than other providers!
http://promotions.yahoo.com/new_mail

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Bruno Wolff III 2004-07-02 13:12:58 Re: BUG #1186: Broken Index?
Previous Message Ilir Gashi 2004-07-02 11:20:56 Grant Update (Possible bug)?