MySQL DATE_ADD不起作用

时间:2009-09-14 13:01:26

标签: sql mysql datetime

我有两列:beginTime和duration。我正在尝试计算endTime。问题是我得到了空的结果。

我尝试过几件事。

DATE_ADD(startTime, INTERVAL `duration` MINUTE) AS endTime

DATE_ADD(startTime, INTERVAL '10' MINUTE) AS endTime

DATE_ADD(startTime, INTERVAL 10 MINUTE) AS endTime

但每次结果都是空的。 startTime不为空。这是格式为09:00:00的时间字段。

任何人都可以帮我吗?

3 个答案:

答案 0 :(得分:1)

如果时间格式不正确,

DATE_ADD将返回NULL,并附上警告:

mysql> \W
Show warnings enabled.
mysql> SELECT DATE_ADD('25:00:00', INTERVAL 10 MINUTE) AS endTime
    -> ;
+---------+
| endTime |
+---------+
| NULL    |
+---------+
1 row in set, 1 warning (0.00 sec)

Warning (Code 1292): Incorrect datetime value: '25:00:00'

另请注意,'hh:mm:ss'不是正确的日期时间格式。你也需要有年,月和日。

您可以在MySQL中启用警告,并使用您的数据重复查询吗?

答案 1 :(得分:0)

这对我有用:

SELECT DATE_ADD(`startTime`, INTERVAL 10 MINUTE) AS endTime FROM `users` WHERE 1

答案 2 :(得分:0)

在DATE_ADD中,第一个参数应该是Date字段而不是Time字段。您可以尝试将开始时间更改为日期格式('0000-00-00 00:00:00')并尝试?