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
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)? |