在MySQL中计算年龄时出错?

时间:2011-12-26 05:47:27

标签: mysql

我正在尝试使用下面的SQL语句来计算年龄

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

给出以下错误,

  

1582 - 调用本机函数'datediff'

时参数计数不正确

2 个答案:

答案 0 :(得分:5)

问题: datediff需要两个参数,例如DATEDIFF(expr1,expr2),根据给定的问题,只有一个参数因此出错。

解决方案:您必须使用,

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

datediff返回expression1 – expression2,所以你不必自己做:)同时确保参数是日期或日期和时间表达式

编辑:调用DATEDIFF后需要@Jonathan Leffler指出的另一个错误。

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

答案 1 :(得分: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

Tommorow匹配

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