sql - 选择与两个日期之间最长期间相关的所有数据
问题描述
所以我试图从一个名为任务的表中返回从启动日期到恢复日期最长的任务的所有数据。这是我到目前为止所拥有的。我知道有些事情不对劲,我只是不知道是什么。
SELECT* FROM missions
WHERE DATEDIFF(year,'launchdate', 'recoverydate') = (select MAX(DATEDIFF(year, 'launchdate','recoverydate'))
FROM missions)
解决方案
看起来您正在使用 SQL Server。如果是这样,您可以使用TOP WITH TIES
:
SELECT TOP (1) WITH TIES m.*
FROM missions m
ORDER BY DATEDIFF(year, m.launchdate, m.recoverydate) DESC;
请注意,您在查询中误用了单引号。否则,它应该工作。
推荐阅读
- java - 使用彩色控制台日志启动 Spring Boot 服务
- java - 如何在 hadoop 集群中调整“DataNode 最大 Java 堆大小”
- multithreading - 在 CLion 中调试多线程 C++ 应用程序
- angular - 当 API 返回 204 状态码时,httpclient 响应为空
- android - Android Room - 避免将 Context 传递给 Singleton
- python - Shapely contains(point) 总是给出 False
- c# - 谷歌地图步行路线请求返回交通信息错误
- react-native - 使用 react-native init 项目反应原生太多问题
- c++ - C++中类字符串的内部结构
- jquery - 使用哈希时如何为当前页面添加任何特定类