手动存储的 Proc 运行不同于通过作业运行



我有一个存储的过程,当手动运行时,会产生预期的结果。当由工作代理运行时,我得到的结果非常不同,我无法弄清楚为什么。该问题涉及以下方面

declare @date as date
set @date=case datepart(dw,getdate())
when 1 then GETDATE()-3 --Monday so use Friday
when 7 then GETDATE()-2 --Sunday so use Friday
else GETDATE()-1 end
print @date

似乎当作为作业运行时,无论星期一如何,@date都将设置为GETDATE()-1。但似乎设置为在星期天正确GETDATE()-2....

我翘起了什么?

看看 SET DATEFIRST https://msdn.microsoft.com/en-us/library/ms181598.aspx

一个可能的原因可能是作业登录名的设置与您自己的登录名不同。

最新更新