MySql ADDDATE()查询:添加两个30天或60天的日期

MySql ADDDATE()查询:添加两个30天或60天的日期,mysql,sql,database,date,Mysql,Sql,Database,Date,我有一个名为“产品”的下表 product_id (BIGINT) | product_name (VARCHAR) | expiration_date (DATE) | entered_date (DATETIME) | 1234 | ABC | NULL | 2013-07-24 13:17:32 | 6789 | ABC |

我有一个名为“产品”的下表

product_id (BIGINT) | product_name (VARCHAR) | expiration_date (DATE) | entered_date (DATETIME) |
 1234            | ABC                    |     NULL               |    2013-07-24 13:17:32  |
 6789            | ABC                    |     NULL               |    2013-07-19 12:04:12  |  
 1234            | ABC                    |     NULL               |    2013-07-05 13:34:16  |  
 2343            | ABC                    |     NULL               |    2013-06-04 17:16:51  |  
我想根据ENTERD_date列更新到期日期条目。如果输入了\u date+30天>NOW(),则设置到期\u日期=提前30天,否则设置到期\u日期=提前60天

product_id (BIGINT) | product_name (VARCHAR) | expiration_date (DATE)  | entered_date (DATETIME) |
 1234               | ABC                    |  2013-08-24             |    2013-07-24 13:17:32  |
 6789               | ABC                    |  2013-08-19             |    2013-07-19 12:04:12  |  
 1234               | ABC                    |  2013-08-05             |    2013-06-05 13:34:16  |  
 2343               | ABC                    |  2013-08-24             |    2013-06-04 17:16:51  |  
我正在尝试MySql中的ADDDATE()和其他日期函数,但到目前为止,我的运气并不好

请让我知道你可以帮我得到以下结果

enter code here

您可以指定ADDDATE()函数的问题吗

我试过这样的方法,效果很好

CREATE TABLE dates
    (
     id int auto_increment primary key, 
     date DATETIME DEFAULT NULL
    );

INSERT INTO dates
(date)
VALUES
(NOW());
UPDATE dates SET date = DATE_ADD(date,INTERVAL 10 DAY);
也许您的update语句中的where子句有误

你可以这样做

 WHERE DATE_ADD(date ,INTERVAL 30 DAY) > NOW()
试试这个(未测试!)


什么不适用于
ADDDATE()
?您可以显示您一直使用的查询吗?如果您尝试了一些代码,您应该向我们显示该代码,给出它的行为示例、不希望的方式以及您希望的示例。
 update product set expiration_date = (
      select if(dateadd(entered_date, interval 30 day) > now(),
          dateadd(entered_date,interval 30 day), 
          dateadd(entered_date,interval 60 day)))