我有一个存储过程,当手动运行时,会产生预期的结果。当由作业代理运行时,我得到了非常不同的结果,我无法弄清楚原因。该问题涉及以下
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
....
我翘起了什么?
答案 0 :(得分:1)
看看SET DATEFIRST https://msdn.microsoft.com/en-us/library/ms181598.aspx
一个可能的原因可能是作业登录的设置与您自己的登录设置不同。