SSIS:如何通过星期日和假日的转换来更新日期

时间:2014-01-16 17:21:40

标签: sql-server ssis

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

我还需要更新以更新某些节日的日期,如感恩节和圣诞节到前一天,除非那天是星期天。

我知道如何使用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'

等......然后我也会在假期时手动更改日期,但不想再每个月都这样做了。

提前致谢!

1 个答案:

答案 0 :(得分:0)

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

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