为简单起见,我在表格中有两个字段:
我希望能够使用Day中的值更新日期1但我不想进行多次调用(首先是选择,获取结果,然后使用同一个表中的结果进行更新)。
最终,我的电话“设计”(不起作用)将是:
UPDATE表SET日期1 = 日期(Y-(M + 1) - (日期值));
或在php中:
date("Y-m-d", mktime(0,0,0,date('m')+1, VALUE(Day), date('Y')));
这可能吗?
更新
==
虽然我已经能够利用下面的一些代码,但我不确定MYSQL是否“足够聪明”来运行我的计算。我的新代码是:
UPDATE表SET日期1 = CONCAT(YEAR(CURDATE()), ' - ',MONTH(ADDDATE(CURDATE() 间隔1个月)),' - ',第1天)
虽然这会返回正确的“新月”和“新的一天”,但当月是12月时,这一年将是错误的。
例如:如果当前日期是2010-12-02。日期字段中的首选数据为12.处理完脚本后,日期1字段应更新为2011-01-12,但在上面的代码中,它只会输出到2010-01-12。
答案 0 :(得分:1)
未经测试,但我认为您遗失的是CONCAT:
UPDATE table SET datefield = CONCAT(YEAR(datefield),'-',MONTH(datefield),'-',dayfield);
重读了你的问题之后,听起来你想要添加日期,就像这样(没有经过测试 - 看看DATE_ADD and INTERVAL):
UPDATE table SET datefield = DAT_ADD(datefield, INTERVAL dayfield DAYS);