Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-bugs by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group