在MS SQL Server中,我试图过滤YTD的所有内容,但不想在查询中硬编码年份,因为否则我将需要按年维护。
是否有一种方法可以过滤WHERE子句中的查询,该子句检索从当前年份开始直到今天的所有内容?
基本上是这样的:
select *
from table
where date between beginningyear and getdate()
方法之一是:
where year(date) = year(getdate())
更有效的方法是:
where date >= datefromparts(year(getdate()), 1, 1)
这两个都假设没有未来的日期。但是你可以很容易地适应:
where date >= datefromparts(year(getdate()), 1, 1) and
date <= getdate()