首页 > 解决方案 > 选择与两个日期之间最长期间相关的所有数据

问题描述

所以我试图从一个名为任务的表中返回从启动日期到恢复日期最长的任务的所有数据。这是我到目前为止所拥有的。我知道有些事情不对劲,我只是不知道是什么。

SELECT* FROM missions
WHERE DATEDIFF(year,'launchdate', 'recoverydate') = (select MAX(DATEDIFF(year, 'launchdate','recoverydate'))
FROM missions)

标签: sql

解决方案


看起来您正在使用 SQL Server。如果是这样,您可以使用TOP WITH TIES

SELECT TOP (1) WITH TIES m.*
FROM missions m
ORDER BY DATEDIFF(year, m.launchdate, m.recoverydate) DESC;

请注意,您在查询中误用了单引号。否则,它应该工作。


推荐阅读