2016-02-26 59 views
2

我试图从船上的埃克塞特使用时间戳和内部联接从其他表中找到最年轻的船长。我在第二行的代码中遇到了一个错误,这将是timestamp命令,但我以前从未使用过,所以我会盲目。试图找到船上最年轻的线路管理员的年龄MYSQL

下面是我特别想要得到的结果:假设今天是2328年3月1日。谁是埃克塞特最年轻的线路管理员?您可以使用有序列表作为您的答案,但每个机组成员(或者仅仅是最老的成员)的年龄应该以年为单位显示。

SELECT lastname, firstname, birthday 
TIMESTAMPDIFF(YEAR,'2328-03-01') AS age 
FROM crewmember 
INNER JOIN vessel 
ON crewmember.currentshipcallsign=vessel.callsign 
INNER JOIN rank 
ON crewmember.rankcode=rank.rankcode 
WHERE vessel.name='USS Exeter' AND rank.rankcategory='Line Officer'; 
+0

看看你TIMESTAMPDIFF语法,这就是有错误。添加单位参数。更多信息http://coderlearner.com/Mysql_TIMESTAMPDIFF –

+0

你需要知道他们的年龄?或者谁最年轻? – Strawberry

+0

是的,我需要知道年龄显示的年龄。 – Drl93

回答

0

TIMESTAMPDIFF返回两个日期列之间的差异。

你只有一个值

TIMESTAMPDIFF(YEAR,'2328-03-01') AS age 

尝试添加第二个日期如:

TIMESTAMPDIFF(MONTH,'2009-05-18','2009-07-29');