2017-08-17 54 views
1
傳遞datetime列

opLastTurn和TurnTime是MYTABLEMySQL的:在功能

SELECT ADDTIME(opLastTurn,TurnTime) AS result FROM mytable; 

datetime列,但它返回NULL,有什麼不好?

+0

數據typesa被opLastTurn和TurnTime?顯示正確的數據樣本和預期結果 – scaisEdge

+0

@ scaisEdge它們的類型是datetime –

+0

兩列? – scaisEdge

回答

2

第一個參數必須是datetime表達式。第二個必須是時間表達。如果他們不能這樣解析,那麼函數放棄並返回NULL。

錯誤:這兩個參數都是日期時間。

mysql> select addtime('2017-08-17 11:00:00', '2017-08-17 11:00:00'); 
+-------------------------------------------------------+ 
| addtime('2017-08-17 11:00:00', '2017-08-17 11:00:00') | 
+-------------------------------------------------------+ 
| NULL             | 
+-------------------------------------------------------+ 

RIGHT:第二個參數是時間:

mysql> select addtime('2017-08-17 11:00:00', '11:00:00'); 
+--------------------------------------------+ 
| addtime('2017-08-17 11:00:00', '11:00:00') | 
+--------------------------------------------+ 
| 2017-08-17 22:00:00      | 
+--------------------------------------------+ 
2

第二參數應該是一個時間..因此嘗試使用

SELECT ADDTIME(opLastTurn, time(TurnTime)) AS result FROM mytable; 
+0

親愛的scaisEdge我也試過它與時間列,但仍然返回空 –

+2

然後顯示您的值的真實內容和數據類型.. – scaisEdge

0

我發現這個問題,我得到這樣的結果,因爲我的一些數據,就像下面

日期時間:0000-00- 00 00:00:00 time:03:00:00 or datetime:2017-00-02 05:00:00 time:00:00:00 每一行都有一個de對於這些領域的故障值套管的空返回

感謝aloot @ scaisEdge,比爾Karwin,菲爾·K