2011-12-26 89 views
2

我試圖計算年齡低於MySQL中計算年齡的錯誤?

round(datediff(now() - dateofbirth/365)) 

的SQL語句提供了以下錯誤,

1582 - 在調用本地函數 'DATEDIFF'

+0

的出生日期 – 2011-12-26 05:50:32

回答

5
不正確的參數個數

問題:datediff需要兩個參數,如DATEDIFF(expr1,expr2),根據給定的問題,只有在因此參數錯誤。

解決方案:,你必須使用,

round(datediff(now() , (dateofbirth/365))) 
        ^

datediff回報expression1 – expression2,所以你不要有自己做也:)確保參數日期或日期和時間表達式

編輯:另一個錯誤由@Jonathan萊弗勒指出,調用DATEDIFF後需要分工。

round(datediff(now(),dateofbirth)/365) 
+0

是師需要什麼類型後致電DATEDIFF ? – 2011-12-26 06:02:49

+1

從會員 – user1040364 2011-12-26 06:07:20

+0

@JonathanLeffler oopss選擇回合((datediff(now(),(dateofbirth)))/ 365)!得到它了! :D:D:D – COD3BOY 2011-12-26 06:11:43

1

要查看今天比賽例如使用

SELECT `match_id`, `match_date` FROM `matches` 
WHERE DATEDIFF (CURDATE(),`match_date`) =0 

昨天匹配

SELECT `match_id`, `match_date` FROM `matches` 
WHERE DATEDIFF (CURDATE(),`match_date`) =1 

明天比賽

SELECT `match_id`, `match_date` FROM `matches` 
WHERE DATEDIFF (CURDATE(),`match_date`) =0