在MySQL中选择年龄时出错

在MySQL中选择年龄时出错,mysql,syntax-error,Mysql,Syntax Error,我试图在MySQL上获得不同的年份,但在选择相同的时候,它显示了一个错误 SELECT( DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT('birthdate', '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT('birthdate', '00-%m-%d')) AS age ) FROM register where 'reg_id' = user254 选择( 日期格式(现在(),“%Y

我试图在MySQL上获得不同的年份,但在选择相同的时候,它显示了一个错误

SELECT(
    DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT('birthdate', '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT('birthdate', '00-%m-%d')) AS age
) FROM register where 'reg_id' = user254
选择(
日期格式(现在(),“%Y”)-日期格式(“生日”,“Y”)-(日期格式(现在(),“00-%m-%d”)
错误是什么?

请尝试以下操作:

SELECT (YEAR(NOW()) - YEAR(birthdate)) AS age) 
FROM register 
WHERE reg_id = 'user254'
或(如建议)

选择(年(现在())-年(出生日期)-
(日期格式(现在(),'%m%d')<日期格式(出生日期,'%m%d'))作为年龄
从登记簿
其中reg_id='user254'

仅仅减去年份实际上并不能给出年龄——就好像每个人都出生在1月1日。试着做一个datediff:

SELECT FLOOR((DATEDIFF(NOW(),birthdate))/365)
FROM register 
WHERE reg_id = 'user254'
请记住:在文字值(如“user254”或“John”)周围加引号,但在表名或列名周围不要加引号!您将要使用backtikcs(`)进行这些操作。

尝试以下操作:

SELECT ( YEAR(NOW()) - YEAR(birthdate) - 
(DATE_FORMAT(NOW(), '%m%d') < DATE_FORMAT(birthdate, '%m%d'))
AS age) FROM register WHERE 'reg_id' = user254
选择(年(现在())-年(出生日期)-
(日期格式(现在为(),“%m%d”)<日期格式(出生日期,“%m%d”))
作为年龄)来自寄存器,其中'reg_id'=user254

我会问你这个问题。产生了什么错误?你到底想做什么?非常感谢你告诉我们错误是什么。当你几乎不提供任何关于你的问题的信息时,有人应该如何帮助你呢?猜猜
where reg_id='user254'
。还有一个问题是你已经纠正了。
)这将被删除,谢谢你的帮助。回复不错!如果你要抄袭别人的答案,至少要归功于你!
SELECT ( YEAR(NOW()) - YEAR(birthdate) - 
(DATE_FORMAT(NOW(), '%m%d') < DATE_FORMAT(birthdate, '%m%d'))
AS age) FROM register WHERE 'reg_id' = user254