Mysql sql addtime usage to increment time字段

Mysql sql addtime usage to increment time字段,mysql,Mysql,我试图使用一个变量来增加存储sql过程中使用的时间变量 我试过了 v_start1 = addtime(v_start1, v_inc); where: declare v_start1 Time; declare v_inc time; or declare v_inc varchar(10); select start1 from table into v_start1; select inc from another_table into v_inc; 它无法增加v_start1 如

我试图使用一个变量来增加存储sql过程中使用的时间变量

我试过了

v_start1 = addtime(v_start1, v_inc);

where:
declare v_start1 Time;
declare v_inc time; or declare v_inc varchar(10);

select start1 from table into v_start1;
select inc from another_table into v_inc;
它无法增加v_start1

如果我使用
v_start1=addtime(v_start1,'00:15:00')
它可以工作,但是
00:15:00
是一个需要更改的固定值

我如何使用第二个变量来提供值,使v_strar1递增
如何将varchar转换为时间;值的形式可能是字符串形式的
+00:15
值是来自“+00:15”等“另一个表”字符串还是时间数据类型值?这可能是个问题

我建议您避免使用字符串,只将其作为时间或日期时间数据类型处理。如果你有一个像“+15:00”这样的字符串,它可能意味着15分钟,但对一些人来说,它看起来像15小时。可能在您的查询中,表中的值是一个字符串,未正确转换。把它作为一个时间域放到表中,它应该会起作用

作为补充说明,我喜欢使用完整的DATETIME数据类型,而不是像您在需要加减时所做的那样使用时间类型。如果你真的只对时间感兴趣,那么就用当前的日期、月份、年份和你的输入时间

我不能100%肯定MySql,但对于SqlServer和Oracle,可能会出现以下情况:

如果v_start1是23:55:00,加上15分钟,它实际上变成了第二天的00:00:10。如果你加上1455分钟,你会得到完全相同的时间,但2天后。所以,只看时间会给你带来麻烦

如果您处理的是DATETIME类型,那么您总是可以轻松地使用和添加任何秒、分钟等