Mysql DATE_ADD无法使用INTERVAL保留字

时间:2016-07-25 02:23:44

标签: mysql

我需要运行以下查询:

select DATE_ADD('08:35:00', INTERVAL 5 MINUTE) from dual

但我按预期获得 null 而不是 08:40:00 。我做错了什么?

我需要使用INTERVAL x MINUTE格式,因为数字5将在稍后被整数变量替换。

4 个答案:

答案 0 :(得分:0)

您可以尝试使用ADDTIME代替DATE_ADD吗?

select ADDTIME('08:35:00.000000', '00:05:00.000000') from dual

答案 1 :(得分:0)

DATEADD期望第一个参数是日期或日期时间,有时间。

改为使用ADDTIME

SELECT ADDTIME('08:35:00', '0:05:00');

Demo.

您可以使用LPAD

在上面提到的变量中使用此查询
SET @a = 5;
SELECT ADDTIME('08:35:00', CONCAT('0:', LPAD(@a, 2, '0'), ':00'));

Demo 2.

答案 2 :(得分:0)

我尝试以相同的结果执行查询,尝试在时间之前添加特定日期。它与我的工作正常。例如:

您可以更改日期

select DATE_ADD('2016-11-05 08:35:00', INTERVAL 5 MINUTE) as    future_time from dual

select ADDTIME('08:35:00','00:05:00')as future_time from dual

答案 3 :(得分:0)

因为您需要使用INTERVAL,如果您不关心日期,可以这样做:

select time(DATE_ADD('2016-01-01 08:35:00', INTERVAL 5 MINUTE));

或许date_format可能是你想要的:

select date_format(DATE_ADD('2016-01-01 08:35:00', INTERVAL 5 MINUTE), '%H:%i:%s');

Demo Here