最近的星期日在ssis表达式构建器

时间:2017-01-31 17:33:48

标签: ssis

如何在ssis中以yyyymmdd格式获取最近的星期日日期?在SQL中应用一些公式实际上得到了我需要的东西。然而在ssis中似乎有些不同。任何建议?

1 个答案:

答案 0 :(得分:0)

我做了这个练习:假设考虑当天的日期并在一周的某一天结账,然后在最近的周日移动一天。

首先你需要为当天的某一天(@ [User :: DayOfWeek] int32; Sunday = 1)引入一个变量,并计算你必须在周日返回的天数:

@ [用户:: DAYOFWEEK]

DATEPART( "dw", getdate() ) == 1 ? 0 
: DATEPART( "dw", getdate() ) == 2 ? -1 
: DATEPART( "dw", getdate() ) == 3 ? -2 
: DATEPART( "dw", getdate() ) == 4 ? -3 
: DATEPART( "dw", getdate() ) == 5 ? -4 
: DATEPART( "dw", getdate() ) == 6 ? -5 : -6

所以你需要的表达是(带走返回星期日的日子):

(DT_WSTR,4) YEAR(DATEADD( "DD", @[User::DayOfWeek], getdate()  )) + 
RIGHT(  "0" + (DT_WSTR,2) MONTH(DATEADD( "DD", @[User::DayOfWeek], getdate() ) ),2) + 
RIGHT(  "0" + (DT_WSTR,2)  DAY(DATEADD( "DD", @[User::DayOfWeek], getdate() )),2)

这是2017-02-10的结果:

20170205

我希望这对你有所帮助。