Sql server SSIS:如何通过周日和节假日的转换更新日期

Sql server SSIS:如何通过周日和节假日的转换更新日期,sql-server,ssis,Sql Server,Ssis,SSIS中的最佳方式是什么?我应该使用哪些转换将日期从星期日更改(更新)到上一个星期五(每月的第一天除外)。然后,异常将执行更新,将日期更改为星期一 我还需要一个更新,将感恩节和圣诞节等特定节日的日期更改为前一天,当然,除非那天是星期天 我知道如何使用SQL查找这些日期,但我对SSIS有点陌生,不知道如何使用转换或最好的方法 作为参考,我使用SQL来识别一个月内的星期日。然后,我进行更新,将其更改为星期五,或者如我所说,如果这导致它超出当前月份,则更改为星期一: SELECT * FROM Dr

SSIS中的最佳方式是什么?我应该使用哪些转换将日期从星期日更改(更新)到上一个星期五(每月的第一天除外)。然后,异常将执行更新,将日期更改为星期一

我还需要一个更新,将感恩节和圣诞节等特定节日的日期更改为前一天,当然,除非那天是星期天

我知道如何使用SQL查找这些日期,但我对SSIS有点陌生,不知道如何使用转换或最好的方法

作为参考,我使用SQL来识别一个月内的星期日。然后,我进行更新,将其更改为星期五,或者如我所说,如果这导致它超出当前月份,则更改为星期一:

SELECT * FROM DriverRoutes 
where [Date] BETWEEN dateadd(month,datediff(month,0,'1/1/2014')-1,0) 
AND dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0, '1/1/2014'), 0))
and DATEPART(w,[Date]) = '1' 

update DriverRoutes 
set DATEPART(w,[Date]) = '6'
where DATEPART(w,[Date]) = '1'
等等。。。。然后我也会在假期手动更改日期,但我不想再每个月都这样做了


提前谢谢

创建一个日历表,其中包含日期及其业务含义的列表。当地公认为假日的日期和企业公认的假日不断变化。您最终得到的不是嵌入的公式,而是易于阅读的代码

UPDATE t1
SET [DeliveryDate] = t2.[NextBusinessDay]
FROM DriverRoutes t1
INNER JOIN Calendar t2 ON (t1.[Date] = t2.[Date])
WHERE t2.[IsHoliday] = 1

脚本任务/组件将成为解决此问题所需的SSIS工具。Anon,谢谢您提供的解决方案,从SQL查询的角度来看,这对我来说是有意义的。但是,在SSIS包中的转换中如何/在何处执行此操作?请在这些响应上使用“执行SQL”脚本taskThank、Anon和billinkc!我已经更改了一个现有的表,其中包含IsSunday和IsHoliday的日期列,并将所有适当的日期设置为“1”。所以这很有效-感恩节有点棘手,但我已经弄明白了。所以是的,我将尝试执行SQL脚本任务;但是,我还不确定它在哪里,或者在我实际加载时它将如何更新这些值。就像我说的,我是个新手哦我想我现在看到了。我正在使用数据流任务-我需要选择一个执行SQL任务-我的错误。还在努力。。。