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'
等......然后我也会在假期时手动更改日期,但不想再每个月都这样做了。
提前致谢!
答案 0 :(得分:0)
创建一个日历表,其中包含日期列表及其业务含义。在当地被认可为假期的日期以及企业认可的假期不断变化。您最终会使用易于阅读的代码,而不是嵌入式公式。
UPDATE t1
SET [DeliveryDate] = t2.[NextBusinessDay]
FROM DriverRoutes t1
INNER JOIN Calendar t2 ON (t1.[Date] = t2.[Date])
WHERE t2.[IsHoliday] = 1