Sorry, I realise I made a mistake in my schema and my query below, they
should read:
-----
UPDATE foo_table
SET NextDate=DATE_ADD(foo_table.NextDate,Period)
WHERE NextDate<=NOW()
-----
CREATE TABLE `foo_table` (
  `ID` bigint(20) NOT NULL auto_increment,
  `Period` enum('INTERVAL 30 SECOND','INTERVAL 1 DAY','INTERVAL 1
WEEK','INTERVAL 2 WEEK','INTERVAL 1 MONTH','INTERVAL 2 MONTH','INTERVAL 3
MONTH','INTERVAL 1 YEAR','INTERVAL 2 YEAR') NOT NULL default 'INTERVAL 1
MONTH',
  `NextDate` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`ID`)
) TYPE=InnoDB;
-----
> I have also considered trying something along the lines of:
>
> UPDATE foo_table
> SET NextDate=DATE_ADD(foo_table.NextDate,(SELECT foo_table.Period))
> WHERE NextDate<=NOW()
-----
The more I look at this, the more I think I may be forced to select the date
interval to add and then build a query and execute it rather than do that in
just one statement. I would have preferred to have this work (or something
similar).

--
Adam Carmichael
[EMAIL PROTECTED]

----- Original Message ----- 
From: "Adam Carmichael" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, September 30, 2003 9:45 PM
Subject: DATE_ADD Dynamic Interval


> Hi All,
>
> I am trying to create a table with a list of records where a script runs
> about once every 10 minutes that will update a certain field by an
interval
> set (by an enum) in that particular record.
>
> My Script looks as follows:
>
> UPDATE foo_table
> SET NextDate=DATE_ADD(foo_table.NextDate,Period)
> WHERE NextDate<=NOW()
>
> And the schema approximates:
> CREATE TABLE `Records` (
>   `ID` bigint(20) NOT NULL auto_increment,
>   `Period` enum('INTERVAL 30 SECOND','INTERVAL 1 DAY','INTERVAL 1
> WEEK','INTERVAL 2 WEEK','INTERVAL 1 MONTH','INTERVAL 2 MONTH','INTERVAL 3
> MONTH','INTERVAL 1 YEAR','INTERVAL 2 YEAR') NOT NULL default 'INTERVAL 1
> MONTH',
>   `NextDate` datetime NOT NULL default '0000-00-00 00:00:00',
>   PRIMARY KEY  (`ID`)
> ) TYPE=InnoDB;
>
> I have also considered trying something along the lines of:
>
> UPDATE foo_table
> SET NextDate=DATE_ADD(foo_table.NextDate,(SELECT foo_table.Period))
> WHERE NextDate<=NOW()
>
> Has anybody tried anything like this before with any luck?
>
> Regards,
>
> Adam Carmichael
> [EMAIL PROTECTED]
>
>

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to