Harry E. Clarke wrote:
>
> The following bug has been logged online:
>
> Bug reference: 2403
> Logged by: Harry E. Clarke
> Email address: Harry.Clarke@metrosky.co.uk
> PostgreSQL version: 8.1.3
> Operating system: Suse Linux 10.0
> Description: Date arithemtic using INTERVAL in UPDATE command does
> not work
> Details:
>
> Entering the command
>
> UPDATE table SET col_date = col_date - INTERVAL '100' YEAR where condition;
>
> does not perform any date aritimetic, and thus the date value in col_date
> remains unchanged. col_date contains a value such as '2039-12-07'. If the
> command
>
> UPDATE table SET col_date = DATE '1939-12-07' where condition;
>
> is entered, the command executes as expected.
That is definately a bug:
test=> SELECT INTERVAL '100' YEAR;
interval
----------
00:00:00
(1 row)
As a work-around until we fix it, please use:
test=> SELECT INTERVAL '100 year';
interval
-----------
100 years
(1 row)
with the 'YEAR' in the quotes.
--
Bruce Momjian http://candle.pha.pa.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +