我正在创建一个 SQL Server 存储过程,它根据当前周进行大量过滤。我没有传入开始日期和结束日期,而是传入一个日期并使用 Datepart() 过滤出星期。
Where DATEPART(WEEK, cd.TurninDate) = DATEPART(WEEK, @StartDate)
and DATEPART(YEAR, cd.TurninDate) = DATEPART(YEAR, @StartDate)
尽量积极主动,我可以看到经理要求每月或每季度以及每周运行一次。如果我能提供帮助,我宁愿不为每个版本存储一个 Proc。我想传递频率和日期,但它似乎不起作用。
我试过了:
Where DATEPART(@Freq, cd.TurninDate) = DATEPART(@Freq, @StartDate)
and DATEPART(YEAR, cd.TurninDate) = DATEPART(YEAR, @StartDate)
但我在@Freq 未被识别为间隔时收到错误消息。
有谁知道我可以解决这个问题的方法?