我需要运行以下查询:
select DATE_ADD('08:35:00', INTERVAL 5 MINUTE) from dual
但我按预期获得 null 而不是 08:40:00 。我做错了什么?
我需要使用INTERVAL x MINUTE格式,因为数字5将在稍后被整数变量替换。
答案 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');
您可以使用LPAD
在上面提到的变量中使用此查询SET @a = 5;
SELECT ADDTIME('08:35:00', CONCAT('0:', LPAD(@a, 2, '0'), ':00'));
答案 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');