使用MySQL查询增加日期/时间值秒

时间:2016-04-01 19:43:25

标签: mysql wordpress

我尝试使用以下查询每次从特定值+ 1秒增加给定范围的MySQL单元格中的时间:

set @mytime= -1;
update wp_posts set post_date = date('2015-04-03 03:00:07') + interval (@mytime := @mytime + 1) second WHERE `wp_posts`.`ID` > 229 AND `wp_posts`.`ID` < 999;

问题是它为单元格229设置了正确的时间,但是从单元格230开始它从00:00:00开始,然后按照预期为每个下一个单元格添加1个新秒钟。

所以而不是

2015-04-03 03:00:06
2015-04-03 03:00:07
2015-04-03 03:00:08
etc 

我有

2015-04-03 03:00:06
2015-04-03 00:00:00
2015-04-03 00:00:01
2015-04-03 00:00:02
and so on.

查询中的错误在哪里?

1 个答案:

答案 0 :(得分:2)

date('2015-04-03 03:00:07')只返回日期部分,它会丢弃一天中的时间,因此当您向其添加秒数时,它被视为午夜。将其更改为:

update wp_posts set post_date = cast('2015-04-03 03:00:07' AS DATETIME) + interval (@mytime := @mytime + 1) second WHERE `wp_posts`.`ID` > 229 AND `wp_posts`.`ID` < 999;

单元格229不受此影响的原因是因为您的WHERE条款显示ID > 229,而不是ID >= 229。因此,单元格229根本没有更新。