Re: timestamp arithmetic (a possible bug?) - Mailing list pgsql-bugs
From | Theodore Petrosky |
---|---|
Subject | Re: timestamp arithmetic (a possible bug?) |
Date | |
Msg-id | 20040702112302.54615.qmail@web41012.mail.yahoo.com Whole thread Raw |
In response to | timestamp arithmetic (a possible bug?) (Ilir Gashi <I.Gashi@city.ac.uk>) |
List | 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.Gashi@city.ac.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.gashi@city.ac.uk > website: > http://www.csr.city.ac.uk/csr_city/staff/gashi/ > ____________________________________________ > > > ---------------------------(end of > broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to > majordomo@postgresql.org > __________________________________ Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers! http://promotions.yahoo.com/new_mail
pgsql-bugs by date: