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

时间:2018-08-21 03:37:49

标签: mysql sql syntax mysql-workbench

示例我有这样的表:

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;

您能帮我什么语法吗?

2 个答案:

答案 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);

SQL Fiddle Link

答案 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;