2009-09-14 87 views
0

我有兩列:beginTime和duration。我正在計算endTime。問題是我得到空的結果回來。MySQL DATE_ADD不起作用

我試了幾件事。

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的時間字段。

任何人都可以幫助我嗎?

回答

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中啓用警告,並用您的數據重複查詢?

+0

這是我在執行查詢時得到的消息:警告(代碼1264):第1行的列'startTime'超出範圍值。可能是因爲類型錯誤。我怎樣才能將分鐘添加到時間字段? – Ikke 2009-09-15 07:34:27

0

這個工作對我來說:

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

什麼是'startTime'的字段類型? – Ikke 2009-09-15 07:35:05

0

在應該是日期字段沒有時間字段DATE_ADD第一個參數。你可以嘗試將開始時間更改爲日期格式('0000-00-00 00:00:00')並嘗試?