一周中最近的一天?
我有一个检查,可以在一周中的任何一天运行。问题是,它需要指向特定的一天。目前,我们有两个版本,一个是周一运行的周五(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