Mysql更新日期字段为1年

时间:2014-06-05 05:38:34

标签: mysql sql date sql-update

我有这个问题:

update prices_types_company1 set 'date'=DATE_ADD('date',INTERVAL 1 year)    

我试图直接在phpMyadmin中执行以增加所有日期字段1年,但它返回错误:

  

1064 - 您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   第1行''date'= DATE_ADD('date',INTERVAL 1 year)'附近

它有什么问题以及我可以用1年来增加日期的其他查询。字段“日期”是类型日期..

谢谢

3 个答案:

答案 0 :(得分:2)

删除单引号并使用这样的反引号

UPDATE prices_types_company1 SET `date`=DATE_ADD(`date`,INTERVAL 1 YEAR);

答案 1 :(得分:2)

MySQL在许多情况下表现得相当奇怪,更新就是其中之一。你必须做类似的事情:

update prices_types_company1 
    set date=DATE_ADD(date,INTERVAL 1 year)
order by date desc;

以避免重复键错误。例如:

create table t (d date not null primary key);
insert into t (d) values ('2014-06-05 12:00:00'),('2014-06-06 12:00:00');
update t set d = DATE_ADD(d, interval 1 day);
    ERROR 1062 (23000): Duplicate entry '2014-06-06' for key 'PRIMARY'
update t set d = DATE_ADD(d, interval 1 day) order by d desc;
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2  Changed: 2  Warnings: 0

答案 2 :(得分:1)

删除所有单个qoutes:

update prices_types_company1 set date=DATE_ADD(date,INTERVAL 1 year)