SQL查询获取特定日期和列中最新日期之间的数据
Posted
技术标签:
【中文标题】SQL查询获取特定日期和列中最新日期之间的数据【英文标题】:SQL query to get data between a particular date and the latest date in the column 【发布时间】:2021-07-07 08:19:16 【问题描述】:我在 SQL Server 中有一个来自各种表的查询数据,我需要知道我想在 2017 年 1 月 1 日(开始日期)和开始日期列中的最新数据之间获取数据。
【问题讨论】:
是 mysql 还是 sql-server ? 提供示例数据(CREATE TABLE + INSERT INTO 脚本,3-5 行)和该数据所需的输出。 【参考方案1】:一种方法使用MAX
作为分析函数来查找最近的开始日期:
WITH cte AS (
SELECT *, MAX(start_date) OVER () AS max_start_date
FROM yourTable
)
SELECT *
FROM cte
WHERE start_date BETWEEN '20170101' AND max_start_date;
【讨论】:
... SELECT * FROM yourTable WHERE start_date >= '20170101' 不是更简单吗? @lptr 您的建议不是 OP 中规定的逻辑,它需要 2 个日期之间的范围。 ...但是 start_date 的任何值始终是 【参考方案2】:我需要知道我想获取 2017 年 1 月 1 日(开始日期)和开始日期列中的最新数据之间的数据。
这是另一种说法,即您想要 2017 年 1 月 1 日或之后的所有数据。所以:
where start_date >= '20170101' -- or if you prefer '2017-01-01'
【讨论】:
以上是关于SQL查询获取特定日期和列中最新日期之间的数据的主要内容,如果未能解决你的问题,请参考以下文章