Sql-Server

僅在一個月的最後 3 天執行儲存過程

  • July 17, 2019

如何使用 T-SQL 腳本僅在一個月的最後 3 天執行儲存過程?

添加此腳本將幫助您僅在每月的最後三天執行 SP。

注意:在調度程序中,您可以安排每天執行它。

DECLARE @FromDate DATE
DECLARE @ToDate DATE
SELECT @FromDate=DATEADD(DD,-2,CAST(DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+1,0)) AS DATE)) --Last Date -2
SELECT @ToDate= CAST(DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+1,0)) AS DATE) --Last Date of current month

IF (GETDATE() BETWEEN @FromDate AND @ToDate)
BEGIN

EXEC SP_YourSPName--------------------------Execute your SP here

END

我從https://blog.sqlauthority.com/2007/08/18/sql-server-find-last-day-of-any-month-current-previous-next/獲取查詢以獲取該月的最後一個日期

DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+1,0))

使用他的評論中提到的查詢@Chris Rolliston 也可以做到這一點。

DECLARE @Today DATE = GETDATE();
DECLARE @EOM DATE = EOMONTH(@Today);
IF (DAY(@EOM) - DAY(@Today) BETWEEN 0 AND 2)
EXEC SP_YourSPName;

謝謝!

引用自:https://dba.stackexchange.com/questions/243049