sql addtime用法增加时间字段

时间:2015-03-28 05:59:31

标签: 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

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

如何使用第二个变量来提供增量v_strar1的值 我如何将varchar转换为时间;值可以采用+00:15形式作为字符串

1 个答案:

答案 0 :(得分:0)

值是来自“another_table”字符串,如“+00:15”还是时间数据类型值?这可能是个问题。

我建议您避免使用字符串,只将其作为时间或日期时间数据类型处理。如果你有一个像“+15:00”的字符串,它可能意味着15分钟,但它看起来像一些人喜欢15小时。也许在您的查询中,表中的值是一个字符串,并没有正确转换。将其作为时间字段放入表中,它应该可以工作。

作为旁注,我喜欢使用完整的DATETIME数据类型而不是像我在需要添加/减去时所做的时间类型。如果您真的只对时间感兴趣,那么只需使用当前的日期 - 月份来计算您的时间。

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

如果v_start1是23:55:00并且您添加15分钟,它实际上变为第二天的00:00:10。如果您添加1455分钟,则会获得完全相同的时间,但会在2天后完成。所以,只看时间会让你陷入困境。

如果您处理DATETIME类型,那么您可以随时使用DATE_ADD并轻松添加任何秒,分钟等。