根据星期几控制 SP 代码流



我有一个SSIS包,它执行一个包含条件的SP:

if (DATEPART(dw,GETDATE()) != 2 OR DATEPART(dw,GETDATE()) != 4 OR DATEPART(dw,GETDATE()) != 6) 
    return 0
...

我预计如果是星期一、星期三或星期五,那么 SP 会继续做事,否则它会return 0,仅此而已。

但是,这种情况似乎每天都会成功,并且 SP 始终返回 0 并且不执行任何操作。 我很困惑。

如何使其识别 MWF 并继续,否则停止?

谢谢

错误(如果我正确理解你的问题(在于你的条件的逻辑。我的猜测是,你实际上需要AND而不是OR s。可以简化为IN/NOT IN

declare @dw smallint
set @dw = DATEPART(dw,GETDATE())
if @dw in (1, 3, 5, 7)
  return 0

...
if @dw not in (2, 4, 6)
  return 0

请注意,有一个DATE_FIRST选项可以更改工作日的顺序(数字(。

附言一些描述: if (DATEPART(dw,GETDATE()) != 2 OR DATEPART(dw,GETDATE()) != 4 OR DATEPART(dw,GETDATE()) != 6)此条件始终为 true,因为一天不能同时是一周的第 2、4 和 6 天。如果是一周的第二天,则第一个条件"失败",而下一个条件成功,因为2 != 4

最新更新