更新日期和时间序列,间隔为1分钟

t9aqgxwy  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(349)

例如,我有这样的表:

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;

你能帮我解释一下语法吗?

wztqucjr

wztqucjr1#

就用这个怎么样 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;
e7arh2l6

e7arh2l62#

您正在运行的更新将始终显示“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);

sql小提琴链接

相关问题