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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
> website:
> http://www.csr.city.ac.uk/csr_city/staff/gashi/
> ____________________________________________
> 
> 
> ---------------------------(end of
> broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to
> [EMAIL PROTECTED]
> 


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

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

Reply via email to