示例我有这样的表:
id Day time
1 mon 2014-01-09 11:23:00
2 tue 2014-01-07 14:40:00
3 wed 2014-01-08 09:23:00
4 thu 2014-01-09 12:23:00
,并且我想更改时间列,其间隔为1分钟 就像这样:
id Day time
1 mon 2014-01-16 08:01:00
2 tue 2014-01-16 08:02:00
3 wed 2014-01-16 08:03:00
4 thu 2014-01-16 08:04:00
我尝试这样更新,但不起作用
update schemanot set timenot = ('2014-01-16 08:01:00' + interval 1 minute) where id;
您能帮我什么语法吗?
答案 0 :(得分:0)
您正在运行的更新将始终给出“ 2014-01-16 08:02:00”,因为无法动态更新间隔。使用下面的代码,该代码使用等级来动态更新间隔。
update schemanot updt
join(
select a.*, @curRank := @curRank + 1 AS der_rank
from schemanot a, (SELECT @curRank := 0) r
order by a.id
) rnk
on updt.id = rnk.id
set updt.timenot = ('2014-01-16 08:00:00' + interval der_rank minute);
答案 1 :(得分:0)
仅使用id
怎么样?
update schemanot
set timenot = ('2014-01-16 08:00:00' + interval id minute) ;
如果您担心差距,那么使用变量的简单方法是:
set @rn := 0
update schemanot
set timenot = ('2014-01-16 08:00:00' + interval (@rn := @rn + 1) minute)
order by id;