检查的默认天数取决于脚本的运行情况



我有一个检查,可以在一周中的任何一天运行。问题是,它需要指向特定的一天。目前,我们有两个版本,一个是周一运行的周五(00:00 sat(和周二(00:00周三(。

有时我们正在处理的问题需要一天以上的时间,所以如果能够运行它,比如在周四,脚本会说";啊,你在找星期二的跑步,这是数据。

我该如何实现CASE,以便它可以选择日期?

目前,这就是周一的一次跑步:

DECLARE @Date DATE = dateAdd(dd,-2,GetDate())
SELECT COUNT(*)
FROM SummaryBillingDocument
WHERE BillingSessionID
IN (
SELECT BillingSessionID
FROM BillingSession
WHERE DateProduced = @Date)
AND StatementOfAccountID IS NOT NULL

这在星期一开始跑步,并在星期六早上00:00开始跑步,称为";星期五";跑

我在想一个CASE,但我想到的只是每天声明和正确的DatePart,我不确定这是的最佳方法

case when datename(weekday, getdate()) = 'Friday' then -3
--etc.

提前谢谢!

一周中最近的一天?
declare @day int = 7; -- Saturday
select  dateadd(day, (@day - datepart(weekday, getdate()) - 7 - @@datefirst) % 7, getdate());

dbfiddle

最新更新