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