关于CONCAT和DATE以及Have子句SQL的问题



我正在练习编写SQL查询,我正在使用棒球数据库。我关心的表是命名的人,属性为nameFist、nameLast、首次亮相日期和final_game。

我正试图找到那些在首次亮相后10000天的最后一场比赛的人的名字和姓氏(作为一个场地(以及首次亮相日期。按日期差排序。

到目前为止,我有:

SELECT CONCAT(nameFirst,'',nameLast) as name, debut_date FROM 
PEOPLE;

我该如何找到那些在首次亮相后10000天才进行最后一场比赛的人?首次亮相日期和最终游戏的格式如下:年月日e.i.2014-02-28。

我不能简单地给final_game增加10000天。

您可以尝试使用DATEDIFF函数。所以查询看起来像这样:

SELECT CONCAT(nameFirst,' ',nameLast) as name, debut_date
FROM PEOPLE
WHERE DATEDIFF(final_game, debut_date) > 10000
ORDER BY DATEDIFF(final_game, debut_date);

DATEDIFF函数可能会有所不同,具体取决于您使用的是MySQL还是SQL SERVER。

对于SQL SERVER,查询可能如下所示:

SELECT CONCAT(nameFirst,' ',nameLast) as name, debut_date
FROM PEOPLE
WHERE DATEDIFF(d, debut_date, final_game) > 10000
ORDER BY DATEDIFF(d, debut_date, final_game);

最新更新